init commit
This commit is contained in:
118
workflows/simbox/core/cameras/README.md
Normal file
118
workflows/simbox/core/cameras/README.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Cameras
|
||||
|
||||
Template-based cameras for simbox tasks. All cameras currently use a single generic implementation, `CustomCamera`, which is configured entirely from the task YAML.
|
||||
|
||||
## Available cameras
|
||||
|
||||
| Camera class | Notes |
|
||||
|-----------------|-------|
|
||||
| `CustomCamera` | Generic pinhole RGB-D camera with configurable intrinsics and pose. |
|
||||
|
||||
Importing `CustomCamera` in your task (e.g. `banana.py`) is enough to register it via `@register_camera`.
|
||||
|
||||
---
|
||||
|
||||
## Customizing a camera configuration
|
||||
|
||||
Camera behavior is controlled by the config (`cfg`) passed into `CustomCamera.__init__` in `banana.py`. You typically edit the YAML under `configs/simbox/...`.
|
||||
|
||||
### 1. Top-level camera fields
|
||||
|
||||
Each camera entry in the YAML should provide:
|
||||
|
||||
- **`name`**: Unique camera name (string). Used for prim paths and as the key in `task.cameras`.
|
||||
- **`parent`**: Optional prim path (under the task root) that the camera mount is attached to. Empty string (`""`) means no specific parent.
|
||||
- **`translation`**: Initial camera translation in world or parent frame, as a list of three floats `[x, y, z]` (meters).
|
||||
- **`orientation`**: Initial camera orientation as a quaternion `[w, x, y, z]`.
|
||||
- **`camera_axes`**: Axes convention for `set_local_pose` (e.g. `[1.0, 0.0, 0.0]` etc. – follow existing configs).
|
||||
|
||||
These values are used in `banana.py` when calling:
|
||||
|
||||
```python
|
||||
camera.set_local_pose(
|
||||
translation=cfg["translation"],
|
||||
orientation=cfg["orientation"],
|
||||
camera_axes=cfg["camera_axes"],
|
||||
)
|
||||
```
|
||||
|
||||
### 2. Required `params` fields
|
||||
|
||||
Inside each camera config there is a `params` dict that controls the optics and intrinsics. `CustomCamera` expects:
|
||||
|
||||
- **`pixel_size`** (`float`, microns)
|
||||
Physical pixel size on the sensor. Used to compute horizontal/vertical aperture and focal length.
|
||||
|
||||
- **`f_number`** (`float`)
|
||||
Lens f-number. Used in `set_lens_aperture(f_number * 100.0)`.
|
||||
|
||||
- **`focus_distance`** (`float`, meters)
|
||||
Focus distance passed to `set_focus_distance`.
|
||||
|
||||
- **`camera_params`** (`[fx, fy, cx, cy]`)
|
||||
Intrinsic matrix parameters in pixel units:
|
||||
- `fx`, `fy`: focal lengths in x/y (pixels)
|
||||
- `cx`, `cy`: principal point (pixels)
|
||||
|
||||
- **`resolution_width`** (`int`)
|
||||
Image width in pixels.
|
||||
|
||||
- **`resolution_height`** (`int`)
|
||||
Image height in pixels.
|
||||
|
||||
Optional:
|
||||
|
||||
- **`output_mode`** (`"rgb"` or `"diffuse_albedo"`, default `"rgb"`)
|
||||
Controls which color source is used in `get_observations()`.
|
||||
|
||||
### 3. How the parameters are used in `CustomCamera`
|
||||
|
||||
Given `cfg["params"]`, `CustomCamera` does the following:
|
||||
|
||||
- Computes the camera apertures and focal length:
|
||||
- `horizontal_aperture = pixel_size * 1e-3 * width`
|
||||
- `vertical_aperture = pixel_size * 1e-3 * height`
|
||||
- `focal_length_x = fx * pixel_size * 1e-3`
|
||||
- `focal_length_y = fy * pixel_size * 1e-3`
|
||||
- `focal_length = (focal_length_x + focal_length_y) / 2`
|
||||
- Sets optical parameters:
|
||||
- `set_focal_length(focal_length / 10.0)`
|
||||
- `set_focus_distance(focus_distance)`
|
||||
- `set_lens_aperture(f_number * 100.0)`
|
||||
- `set_horizontal_aperture(horizontal_aperture / 10.0)`
|
||||
- `set_vertical_aperture(vertical_aperture / 10.0)`
|
||||
- `set_clipping_range(0.05, 1.0e5)`
|
||||
- `set_projection_type("pinhole")`
|
||||
- Recomputes intrinsic matrix `K` on the fly:
|
||||
|
||||
```python
|
||||
fx = width * self.get_focal_length() / self.get_horizontal_aperture()
|
||||
fy = height * self.get_focal_length() / self.get_vertical_aperture()
|
||||
self.is_camera_matrix = np.array([[fx, 0.0, cx], [0.0, fy, cy], [0.0, 0.0, 1.0]])
|
||||
```
|
||||
|
||||
### 4. Outputs from `get_observations()`
|
||||
|
||||
`CustomCamera.get_observations()` returns a dict:
|
||||
|
||||
- **`color_image`**: RGB image (`H x W x 3`, float32), either from `get_rgba()` or `DiffuseAlbedo` depending on `output_mode`.
|
||||
- **`depth_image`**: Depth map from `get_depth()` (same resolution as color).
|
||||
- **`camera2env_pose`**: 4x4 transform from camera to environment, computed from USD prims.
|
||||
- **`camera_params`**: 3x3 intrinsic matrix `K` as a Python list.
|
||||
|
||||
These are the values consumed by tasks (e.g. `banana.py`) for perception and planning.
|
||||
|
||||
---
|
||||
|
||||
## Summary checklist for a new camera
|
||||
|
||||
To add or tweak a camera in a task YAML:
|
||||
|
||||
1. **Choose a `name`** and, optionally, a `parent` prim under the task root.
|
||||
2. **Set pose**: `translation`, `orientation` (quaternion `[w, x, y, z]`), and `camera_axes`.
|
||||
3. Under `params`, provide:
|
||||
- `pixel_size`, `f_number`, `focus_distance`
|
||||
- `camera_params = [fx, fy, cx, cy]`
|
||||
- `resolution_width`, `resolution_height`
|
||||
- optional `output_mode` (`"rgb"` or `"diffuse_albedo"`).
|
||||
4. Ensure your task (e.g. `banana.py`) constructs `CustomCamera` with this `cfg` (this is already wired up in the current code).
|
||||
21
workflows/simbox/core/cameras/__init__.py
Normal file
21
workflows/simbox/core/cameras/__init__.py
Normal file
@@ -0,0 +1,21 @@
|
||||
"""Camera module initialization."""
|
||||
|
||||
from core.cameras.base_camera import CAMERA_DICT
|
||||
|
||||
from .custom_camera import CustomCamera
|
||||
|
||||
__all__ = [
|
||||
"CustomCamera",
|
||||
"get_camera_cls",
|
||||
"get_camera_dict",
|
||||
]
|
||||
|
||||
|
||||
def get_camera_cls(category_name):
|
||||
"""Get camera class by category name."""
|
||||
return CAMERA_DICT[category_name]
|
||||
|
||||
|
||||
def get_camera_dict():
|
||||
"""Get camera dictionary."""
|
||||
return CAMERA_DICT
|
||||
9
workflows/simbox/core/cameras/base_camera.py
Normal file
9
workflows/simbox/core/cameras/base_camera.py
Normal file
@@ -0,0 +1,9 @@
|
||||
CAMERA_DICT = {}
|
||||
|
||||
|
||||
def register_camera(target_class):
|
||||
# key = "_".join(re.sub(r"([A-Z0-9])", r" \1", target_class.__name__).split()).lower()
|
||||
key = target_class.__name__
|
||||
assert key not in CAMERA_DICT
|
||||
CAMERA_DICT[key] = target_class
|
||||
return target_class
|
||||
163
workflows/simbox/core/cameras/custom_camera.py
Normal file
163
workflows/simbox/core/cameras/custom_camera.py
Normal file
@@ -0,0 +1,163 @@
|
||||
import numpy as np
|
||||
import omni.replicator.core as rep
|
||||
from core.cameras.base_camera import register_camera
|
||||
from omni.isaac.core.prims import XFormPrim
|
||||
from omni.isaac.core.utils.prims import get_prim_at_path
|
||||
from omni.isaac.core.utils.transformations import (
|
||||
get_relative_transform,
|
||||
pose_from_tf_matrix,
|
||||
)
|
||||
from omni.isaac.sensor import Camera
|
||||
|
||||
|
||||
@register_camera
|
||||
class CustomCamera(Camera):
|
||||
"""Generic pinhole RGB-D camera used in simbox tasks."""
|
||||
|
||||
def __init__(self, cfg, prim_path, root_prim_path, reference_path, name, *args, **kwargs):
|
||||
"""
|
||||
Args:
|
||||
cfg: Config dict with required keys:
|
||||
- params: Dict containing:
|
||||
- pixel_size: Pixel size in microns
|
||||
- f_number: F-number
|
||||
- focus_distance: Focus distance in meters
|
||||
- camera_params: [fx, fy, cx, cy] camera intrinsics
|
||||
- resolution_width: Image width
|
||||
- resolution_height: Image height
|
||||
- output_mode (optional): "rgb" or "diffuse_albedo"
|
||||
prim_path: Camera prim path in USD stage
|
||||
root_prim_path: Root prim path in USD stage
|
||||
reference_path: Reference prim path for camera mounting
|
||||
name: Camera name
|
||||
"""
|
||||
# ===== Initialize camera =====
|
||||
super().__init__(
|
||||
prim_path=prim_path,
|
||||
name=name,
|
||||
resolution=(cfg["params"]["resolution_width"], cfg["params"]["resolution_height"]),
|
||||
*args,
|
||||
**kwargs,
|
||||
)
|
||||
self.initialize()
|
||||
self.add_motion_vectors_to_frame()
|
||||
self.add_semantic_segmentation_to_frame()
|
||||
self.add_distance_to_image_plane_to_frame()
|
||||
|
||||
# ===== From cfg =====
|
||||
pixel_size = cfg["params"].get("pixel_size")
|
||||
f_number = cfg["params"].get("f_number")
|
||||
focus_distance = cfg["params"].get("focus_distance")
|
||||
fx, fy, cx, cy = cfg["params"].get("camera_params")
|
||||
width = cfg["params"].get("resolution_width")
|
||||
height = cfg["params"].get("resolution_height")
|
||||
self.output_mode = cfg.get("output_mode", "rgb")
|
||||
|
||||
# ===== Compute and set camera parameters =====
|
||||
horizontal_aperture = pixel_size * 1e-3 * width
|
||||
vertical_aperture = pixel_size * 1e-3 * height
|
||||
focal_length_x = fx * pixel_size * 1e-3
|
||||
focal_length_y = fy * pixel_size * 1e-3
|
||||
focal_length = (focal_length_x + focal_length_y) / 2
|
||||
|
||||
self.set_focal_length(focal_length / 10.0)
|
||||
self.set_focus_distance(focus_distance)
|
||||
self.set_lens_aperture(f_number * 100.0)
|
||||
self.set_horizontal_aperture(horizontal_aperture / 10.0)
|
||||
self.set_vertical_aperture(vertical_aperture / 10.0)
|
||||
self.set_clipping_range(0.05, 1.0e5)
|
||||
self.set_projection_type("pinhole")
|
||||
|
||||
fx = width * self.get_focal_length() / self.get_horizontal_aperture()
|
||||
fy = height * self.get_focal_length() / self.get_vertical_aperture()
|
||||
self.is_camera_matrix = np.array([[fx, 0.0, cx], [0.0, fy, cy], [0.0, 0.0, 1.0]])
|
||||
|
||||
self.reference_path = reference_path
|
||||
self.root_prim_path = root_prim_path
|
||||
self.parent_camera_prim_path = str(self.prim.GetParent().GetPath())
|
||||
self.parent_camera_xform = XFormPrim(self.parent_camera_prim_path)
|
||||
|
||||
if self.output_mode == "diffuse_albedo":
|
||||
self.add_diffuse_albedo_to_frame()
|
||||
|
||||
def add_diffuse_albedo_to_frame(self) -> None:
|
||||
"""Attach the diffuse_albedo annotator to this camera."""
|
||||
if "DiffuseAlbedo" not in self._custom_annotators:
|
||||
self._custom_annotators["DiffuseAlbedo"] = rep.AnnotatorRegistry.get_annotator("DiffuseAlbedo")
|
||||
self._custom_annotators["DiffuseAlbedo"].attach([self._render_product_path])
|
||||
self._current_frame["DiffuseAlbedo"] = None
|
||||
|
||||
def remove_diffuse_albedo_from_frame(self) -> None:
|
||||
if self._custom_annotators["DiffuseAlbedo"] is not None:
|
||||
self._custom_annotators["DiffuseAlbedo"].detach([self._render_product_path])
|
||||
self._custom_annotators["DiffuseAlbedo"] = None
|
||||
self._current_frame.pop("DiffuseAlbedo", None)
|
||||
|
||||
def add_specular_albedo_to_frame(self) -> None:
|
||||
"""Attach the specular_albedo annotator to this camera."""
|
||||
if self._custom_annotators["SpecularAlbedo"] is None:
|
||||
self._custom_annotators["SpecularAlbedo"] = rep.AnnotatorRegistry.get_annotator("SpecularAlbedo")
|
||||
self._custom_annotators["SpecularAlbedo"].attach([self._render_product_path])
|
||||
self._current_frame["SpecularAlbedo"] = None
|
||||
|
||||
def remove_specular_albedo_from_frame(self) -> None:
|
||||
if self._custom_annotators["SpecularAlbedo"] is not None:
|
||||
self._custom_annotators["SpecularAlbedo"].detach([self._render_product_path])
|
||||
self._custom_annotators["SpecularAlbedo"] = None
|
||||
self._current_frame.pop("SpecularAlbedo", None)
|
||||
|
||||
def add_direct_diffuse_to_frame(self) -> None:
|
||||
"""Attach the direct_diffuse annotator to this camera."""
|
||||
if self._custom_annotators["DirectDiffuse"] is None:
|
||||
self._custom_annotators["DirectDiffuse"] = rep.AnnotatorRegistry.get_annotator("DirectDiffuse")
|
||||
self._custom_annotators["DirectDiffuse"].attach([self._render_product_path])
|
||||
self._current_frame["DirectDiffuse"] = None
|
||||
|
||||
def remove_direct_diffuse_from_frame(self) -> None:
|
||||
if self._custom_annotators["DirectDiffuse"] is not None:
|
||||
self._custom_annotators["DirectDiffuse"].detach([self._render_product_path])
|
||||
self._custom_annotators["DirectDiffuse"] = None
|
||||
self._current_frame.pop("DirectDiffuse", None)
|
||||
|
||||
def add_indirect_diffuse_to_frame(self) -> None:
|
||||
"""Attach the indirect_diffuse annotator to this camera."""
|
||||
if self._custom_annotators["IndirectDiffuse"] is None:
|
||||
self._custom_annotators["IndirectDiffuse"] = rep.AnnotatorRegistry.get_annotator("IndirectDiffuse")
|
||||
self._custom_annotators["IndirectDiffuse"].attach([self._render_product_path])
|
||||
self._current_frame["IndirectDiffuse"] = None
|
||||
|
||||
def remove_indirect_diffuse_from_frame(self) -> None:
|
||||
if self._custom_annotators["IndirectDiffuse"] is not None:
|
||||
self._custom_annotators["IndirectDiffuse"].detach([self._render_product_path])
|
||||
self._custom_annotators["IndirectDiffuse"] = None
|
||||
self._current_frame.pop("IndirectDiffuse", None)
|
||||
|
||||
def get_observations(self):
|
||||
if self.reference_path:
|
||||
camera_mount2env_pose = get_relative_transform(
|
||||
get_prim_at_path(self.reference_path), get_prim_at_path(self.root_prim_path)
|
||||
)
|
||||
camera_mount2env_pose = pose_from_tf_matrix(camera_mount2env_pose)
|
||||
self.parent_camera_xform.set_local_pose(
|
||||
translation=camera_mount2env_pose[0],
|
||||
orientation=camera_mount2env_pose[1],
|
||||
)
|
||||
camera2env_pose = get_relative_transform(
|
||||
get_prim_at_path(self.prim_path), get_prim_at_path(self.root_prim_path)
|
||||
)
|
||||
|
||||
if self.output_mode == "rgb":
|
||||
color_image = self.get_rgba()[..., :3]
|
||||
elif self.output_mode == "diffuse_albedo":
|
||||
color_image = self._custom_annotators["DiffuseAlbedo"].get_data()[..., :3]
|
||||
else:
|
||||
raise NotImplementedError
|
||||
|
||||
obs = {
|
||||
"color_image": color_image,
|
||||
"depth_image": self.get_depth(),
|
||||
"camera2env_pose": camera2env_pose,
|
||||
"camera_params": self.is_camera_matrix.tolist(),
|
||||
}
|
||||
|
||||
return obs
|
||||
73
workflows/simbox/core/configs/arenas/azure_loong_arena.yaml
Normal file
73
workflows/simbox/core/configs/arenas/azure_loong_arena.yaml
Normal file
@@ -0,0 +1,73 @@
|
||||
name: azure_loong_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.705]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.0015, 0.0015, 0.001]
|
||||
texture:
|
||||
texture_lib: "val2017"
|
||||
apply_randomization: False
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: False
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background0
|
||||
# target_class: PlaneObject
|
||||
# size: [3.0, 5.0]
|
||||
# translation: [-2, 0, 1]
|
||||
# euler: [0.0, 90.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: False
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background1
|
||||
# target_class: PlaneObject
|
||||
# size: [3.0, 5.0]
|
||||
# translation: [2, 0, 1]
|
||||
# euler: [0.0, 90.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: False
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background2
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 3.0]
|
||||
# translation: [0, -2, 1]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: False
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background3
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 3.0]
|
||||
# translation: [0, 2, 1]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: False
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
|
||||
|
||||
|
||||
# affordance region should be defined here
|
||||
73
workflows/simbox/core/configs/arenas/base_arena.yaml
Normal file
73
workflows/simbox/core/configs/arenas/base_arena.yaml
Normal file
@@ -0,0 +1,73 @@
|
||||
name: base_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.35570302]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.0015, 0.0015, 0.001]
|
||||
texture:
|
||||
texture_lib: "table_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
|
||||
|
||||
# affordance region should be defined here
|
||||
74
workflows/simbox/core/configs/arenas/clean_dark_arena.yaml
Normal file
74
workflows/simbox/core/configs/arenas/clean_dark_arena.yaml
Normal file
@@ -0,0 +1,74 @@
|
||||
name: clean_dark_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001053, 0.001056]
|
||||
# scale: [0.0007, 0.001053, 0.001056]
|
||||
texture:
|
||||
texture_lib: "dark_table_textures" # "val2017/image"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
|
||||
|
||||
# affordance region should be defined here
|
||||
74
workflows/simbox/core/configs/arenas/clean_light_arena.yaml
Normal file
74
workflows/simbox/core/configs/arenas/clean_light_arena.yaml
Normal file
@@ -0,0 +1,74 @@
|
||||
name: clean_light_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001053, 0.001056]
|
||||
# scale: [0.0007, 0.001053, 0.001056]
|
||||
texture:
|
||||
texture_lib: "light_table_textures" # "val2017/image"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
|
||||
|
||||
# affordance region should be defined here
|
||||
72
workflows/simbox/core/configs/arenas/collaborate_arena.yaml
Normal file
72
workflows/simbox/core/configs/arenas/collaborate_arena.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
name: collaborate_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
# scale: [0.000525, 0.001053, 0.001056]
|
||||
scale: [0.001, 0.001002, 0.001056]
|
||||
texture:
|
||||
texture_lib: "table_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
# affordance region should be defined here
|
||||
71
workflows/simbox/core/configs/arenas/conveyor_arena.yaml
Normal file
71
workflows/simbox/core/configs/arenas/conveyor_arena.yaml
Normal file
@@ -0,0 +1,71 @@
|
||||
name: conveyor_arena
|
||||
fixtures:
|
||||
-
|
||||
name: conveyor
|
||||
path: long_horizon/conveyor/World.usd
|
||||
target_class: ConveyorObject
|
||||
translation: [-1.63, 0.0, 0.7]
|
||||
quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [1, 1, 1]
|
||||
linear_velocity: [0.05, 0, 0.0]
|
||||
linear_track_list: ["track_03", "track_07"]
|
||||
angular_velocity: [0.0, 0.0, 20]
|
||||
angular_track_list: ["track_01", "track_02", "track_05", "track_06"]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
|
||||
|
||||
# affordance region should be defined here
|
||||
37
workflows/simbox/core/configs/arenas/example.yaml
Normal file
37
workflows/simbox/core/configs/arenas/example.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
name: example
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
scale: [0.000525, 0.001053, 0.001056]
|
||||
# -
|
||||
# name: floor
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 5.0]
|
||||
# translation: [0, 0, 0]
|
||||
# -
|
||||
# name: background0
|
||||
# target_class: PlaneObject
|
||||
# size: [3.0, 5.0]
|
||||
# translation: [-2, 0, 1]
|
||||
# euler: [0.0, 90.0, 0.0]
|
||||
# -
|
||||
# name: background1
|
||||
# target_class: PlaneObject
|
||||
# size: [3.0, 5.0]
|
||||
# translation: [2, 0, 1]
|
||||
# euler: [0.0, 90.0, 0.0]
|
||||
# -
|
||||
# name: background2
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 3.0]
|
||||
# translation: [0, -2, 1]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
# -
|
||||
# name: background3
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 3.0]
|
||||
# translation: [0, 2, 1]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
74
workflows/simbox/core/configs/arenas/floor_arena.yaml
Normal file
74
workflows/simbox/core/configs/arenas/floor_arena.yaml
Normal file
@@ -0,0 +1,74 @@
|
||||
name: floor_arena
|
||||
fixtures:
|
||||
# -
|
||||
# name: table
|
||||
# path: table0/instance.usd
|
||||
# target_class: GeometryObject
|
||||
# translation: [0.0, 0.0, 0.375]
|
||||
# # euler: [0.0, 0.0, 0.0]
|
||||
# # quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
# scale: [0.001, 0.001053, 0.001056]
|
||||
# # scale: [0.0007, 0.001053, 0.001056]
|
||||
# texture:
|
||||
# texture_lib: "table_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 0
|
||||
# texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
|
||||
|
||||
# affordance region should be defined here
|
||||
72
workflows/simbox/core/configs/arenas/genie_pick_arena.yaml
Normal file
72
workflows/simbox/core/configs/arenas/genie_pick_arena.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
name: genie_pick_randomized_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
# scale: [0.001, 0.001053, 0.001056]
|
||||
scale: [0.001, 0.0010029, 0.001056]
|
||||
texture:
|
||||
texture_lib: "table_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
# affordance region should be defined here
|
||||
72
workflows/simbox/core/configs/arenas/mid_table_arena.yaml
Normal file
72
workflows/simbox/core/configs/arenas/mid_table_arena.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
name: mid_table_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.000525, 0.001053, 0.001056]
|
||||
# scale: [0.0007, 0.001053, 0.001056]
|
||||
texture:
|
||||
texture_lib: "table_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
# affordance region should be defined here
|
||||
75
workflows/simbox/core/configs/arenas/pick_clean_arena.yaml
Normal file
75
workflows/simbox/core/configs/arenas/pick_clean_arena.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
name: pick_clean_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001053, 0.001056]
|
||||
# scale: [0.0007, 0.001053, 0.001056]
|
||||
# texture:
|
||||
# texture_lib: "table_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 0
|
||||
# texture_scale: [0.001, 0.001]
|
||||
# dataset: oo3d
|
||||
# category: "plane"
|
||||
# prim_path_child: Instance
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
# affordance region should be defined here
|
||||
@@ -0,0 +1,72 @@
|
||||
name: pick_randomized_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001053, 0.001056]
|
||||
# scale: [0.0007, 0.001053, 0.001056]
|
||||
texture:
|
||||
texture_lib: "table_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
# affordance region should be defined here
|
||||
22
workflows/simbox/core/configs/arenas/scene_arena.yaml
Normal file
22
workflows/simbox/core/configs/arenas/scene_arena.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
name: scene_arena
|
||||
involved_scenes: dining_room_scene_info
|
||||
update_freq: 5000
|
||||
fixtures:
|
||||
# 001
|
||||
-
|
||||
name: table
|
||||
path: home_scenes/tables/dinning_room/model_8617414f380062817ad173f2ad2abc28_0.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0, 0, 0]
|
||||
scale: [0.01, 0.01, 0.01]
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
apply_randomization: True
|
||||
-
|
||||
name: scene
|
||||
path: home_scenes/rooms/dinning_room/MVUHLWYKTKJ5EAABAAAAAAY8_usd_dinning_room_0.usd
|
||||
target_class: GeometryObject
|
||||
scale: [0.01, 0.01, 0.01]
|
||||
translation: [2.449, 1.016, -0.455]
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
apply_randomization: True
|
||||
|
||||
72
workflows/simbox/core/configs/arenas/sweep_arena.yaml
Normal file
72
workflows/simbox/core/configs/arenas/sweep_arena.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
name: sweep_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.0005, 0.001053, 0.001056]
|
||||
# scale: [0.001, 0.001053, 0.001056]
|
||||
texture:
|
||||
texture_lib: "table_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [-2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 5.0]
|
||||
translation: [2, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, -2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 3.0]
|
||||
translation: [0, 2, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
|
||||
# affordance region should be defined here
|
||||
75
workflows/simbox/core/configs/arenas/table_clean_arena.yaml
Normal file
75
workflows/simbox/core/configs/arenas/table_clean_arena.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
name: pick_clean_arena
|
||||
fixtures:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.375]
|
||||
# euler: [0.0, 0.0, 0.0]
|
||||
# quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001053, 0.001056]
|
||||
# scale: [0.0007, 0.001053, 0.001056]
|
||||
# texture:
|
||||
# texture_lib: "table_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 0
|
||||
# texture_scale: [0.001, 0.001]
|
||||
# dataset: oo3d
|
||||
# category: "plane"
|
||||
# prim_path_child: Instance
|
||||
# -
|
||||
# name: floor
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 5.0]
|
||||
# translation: [0, 0, 0]
|
||||
# texture:
|
||||
# texture_lib: "floor_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background0
|
||||
# target_class: PlaneObject
|
||||
# size: [3.0, 5.0]
|
||||
# translation: [-2, 0, 1]
|
||||
# euler: [0.0, 90.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background1
|
||||
# target_class: PlaneObject
|
||||
# size: [3.0, 5.0]
|
||||
# translation: [2, 0, 1]
|
||||
# euler: [0.0, 90.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background2
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 3.0]
|
||||
# translation: [0, -2, 1]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
# -
|
||||
# name: background3
|
||||
# target_class: PlaneObject
|
||||
# size: [5.0, 3.0]
|
||||
# translation: [0, 2, 1]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
# texture:
|
||||
# texture_lib: "background_textures"
|
||||
# apply_randomization: True
|
||||
# texture_id: 1
|
||||
# texture_scale: [1.0, 1.0]
|
||||
|
||||
# affordance region should be defined here
|
||||
22
workflows/simbox/core/configs/arenas/waic_hearth_arena.yaml
Normal file
22
workflows/simbox/core/configs/arenas/waic_hearth_arena.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
name: waic_hearth_arena
|
||||
update_freq: 10
|
||||
fixtures:
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [5.0, 5.0]
|
||||
translation: [0, 0, 0]
|
||||
visible: False
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: scene
|
||||
path: home_scenes/rooms/kitchen/MVUHLWYKTKJ5EAABAAAAADA8_usd_kitchen_0.usd
|
||||
target_class: GeometryObject
|
||||
scale: [0.015, 0.015, 0.015]
|
||||
translation: [-5.89, -3.58, -0.3]
|
||||
euler: [0.0, 0.0, 180.0]
|
||||
apply_randomization: True
|
||||
@@ -0,0 +1,67 @@
|
||||
name: warehouse_conveyor_arena
|
||||
fixtures:
|
||||
-
|
||||
name: conveyor
|
||||
path: long_horizon/conveyor/warehouse_conveyor.usdc
|
||||
target_class: ConveyorObject
|
||||
translation: [0, 0, 0.0]
|
||||
quaternion: [1.0, 0.0, 0.0, 0.0]
|
||||
scale: [1, 1, 1]
|
||||
linear_velocity: [-0.05, 0, 0.0]
|
||||
linear_track_list: ["track_01", "track_03"]
|
||||
angular_velocity: [0.0, 0.0, -10]
|
||||
angular_track_list: ["track_02", "track_04"]
|
||||
-
|
||||
name: floor
|
||||
target_class: PlaneObject
|
||||
size: [50.0, 50.0]
|
||||
translation: [0, 0, 0]
|
||||
texture:
|
||||
texture_lib: "floor_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background0
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 10.0]
|
||||
translation: [-5, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background1
|
||||
target_class: PlaneObject
|
||||
size: [3.0, 10.0]
|
||||
translation: [5, 0, 1]
|
||||
euler: [0.0, 90.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background2
|
||||
target_class: PlaneObject
|
||||
size: [10.0, 3.0]
|
||||
translation: [0, -5, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
-
|
||||
name: background3
|
||||
target_class: PlaneObject
|
||||
size: [10.0, 3.0]
|
||||
translation: [0, 3, 1]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
texture:
|
||||
texture_lib: "background_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 1
|
||||
texture_scale: [1.0, 1.0]
|
||||
8
workflows/simbox/core/configs/cameras/astra.yaml
Normal file
8
workflows/simbox/core/configs/cameras/astra.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
camera_type: "Astra"
|
||||
camera_params: [488.52, 488.52, 323.93, 219.15]
|
||||
resolution_width: 640
|
||||
resolution_height: 480
|
||||
frequency: 30
|
||||
pixel_size: 2.0
|
||||
f_number: 2.0
|
||||
focus_distance: 0.5
|
||||
@@ -0,0 +1,8 @@
|
||||
camera_type: "RealSense"
|
||||
camera_params: [433.89, 433.38, 322.79, 243.14]
|
||||
resolution_width: 640
|
||||
resolution_height: 480
|
||||
frequency: 30
|
||||
pixel_size: 3
|
||||
f_number: 2.0
|
||||
focus_distance: 0.6
|
||||
@@ -0,0 +1,8 @@
|
||||
camera_type: "RealSense"
|
||||
camera_params: [433.89, 433.38, 431.90, 241.39]
|
||||
resolution_width: 848
|
||||
resolution_height: 480
|
||||
frequency: 30
|
||||
pixel_size: 3
|
||||
f_number: 2.0
|
||||
focus_distance: 0.6
|
||||
@@ -0,0 +1,8 @@
|
||||
camera_type: "RealSense"
|
||||
camera_params: [605.451, 605.137, 320.778, 255.816]
|
||||
resolution_width: 640
|
||||
resolution_height: 480
|
||||
frequency: 30
|
||||
pixel_size: 3.0
|
||||
f_number: 2.0
|
||||
focus_distance: 0.5
|
||||
@@ -0,0 +1,8 @@
|
||||
camera_type: "RealSense"
|
||||
camera_params: [323.52, 323.17, 319.55, 182.18]
|
||||
resolution_width: 640
|
||||
resolution_height: 360
|
||||
frequency: 30
|
||||
pixel_size: 3.0
|
||||
f_number: 2.0
|
||||
focus_distance: 0.6
|
||||
@@ -0,0 +1,8 @@
|
||||
camera_type: "RealSense"
|
||||
camera_params: [381.49, 381.16, 318.08, 244.28]
|
||||
resolution_width: 640
|
||||
resolution_height: 480
|
||||
frequency: 30
|
||||
pixel_size: 3.0
|
||||
f_number: 2.0
|
||||
focus_distance: 0.6
|
||||
@@ -0,0 +1,8 @@
|
||||
camera_type: "RealSense"
|
||||
camera_params: [647.04, 646.34, 639.1, 364.36]
|
||||
resolution_width: 1280
|
||||
resolution_height: 720
|
||||
frequency: 30
|
||||
pixel_size: 3.0
|
||||
f_number: 2.0
|
||||
focus_distance: 0.6
|
||||
1
workflows/simbox/core/configs/logger.yaml
Normal file
1
workflows/simbox/core/configs/logger.yaml
Normal file
@@ -0,0 +1 @@
|
||||
placeholder: 0 # todo
|
||||
57
workflows/simbox/core/configs/robots/fr3.yaml
Normal file
57
workflows/simbox/core/configs/robots/fr3.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
# FR3 robot configuration
|
||||
# Single-arm 7-DOF robot
|
||||
|
||||
# Robot info
|
||||
target_class: FR3
|
||||
path: "franka/robot.usd"
|
||||
|
||||
# CuRobo file
|
||||
robot_file:
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/fr3_left_arm.yml
|
||||
|
||||
# Gripper parameters
|
||||
gripper_max_width: 0.08
|
||||
gripper_min_width: 0.0
|
||||
tcp_offset: 0.1043
|
||||
|
||||
# Solver parameters
|
||||
solver_position_iteration_count: 128
|
||||
solver_velocity_iteration_count: 4
|
||||
stabilization_threshold: 0.005
|
||||
|
||||
# Joint indices
|
||||
left_joint_indices: [0, 1, 2, 3, 4, 5, 6]
|
||||
left_gripper_indices: [7]
|
||||
|
||||
# Paths (relative to robot_prim_path)
|
||||
fl_ee_path: "fr3/panda_hand"
|
||||
fl_base_path: "fr3/panda_link0"
|
||||
|
||||
# Gripper keypoints
|
||||
fl_gripper_keypoints:
|
||||
tool_head: [0.0, 0.0, 0.1034, 1]
|
||||
tool_tail: [0.0, 0.0, 0.0584, 1]
|
||||
tool_side: [0.0, 0.04, 0.1034, 1]
|
||||
|
||||
# Collision paths
|
||||
fl_filter_paths:
|
||||
- "fr3/panda_leftfinger"
|
||||
- "fr3/panda_rightfinger"
|
||||
fl_forbid_collision_paths:
|
||||
- "fr3/panda_link2"
|
||||
- "fr3/panda_link3"
|
||||
- "fr3/panda_link4"
|
||||
- "fr3/panda_link5"
|
||||
- "fr3/panda_link6"
|
||||
- "fr3/panda_link7"
|
||||
- "fr3/panda_link8"
|
||||
- "fr3/panda_hand"
|
||||
|
||||
# Pose processing (Z-axis gripper)
|
||||
R_ee_graspnet: [[0.0, 0.0, -1.0], [0.0, 1.0, 0.0], [1.0, 0.0, 0.0]]
|
||||
ee_axis: "z"
|
||||
|
||||
# Default joint home positions
|
||||
left_joint_home: [0, -0.785, 0, -2.356, 0, 1.571, 0.785]
|
||||
left_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_gripper_home: [0.04]
|
||||
59
workflows/simbox/core/configs/robots/franka_robotiq85.yaml
Normal file
59
workflows/simbox/core/configs/robots/franka_robotiq85.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
# FrankaRobotiq85 robot configuration
|
||||
# Single-arm 7-DOF robot with Robotiq 2F-85 gripper
|
||||
|
||||
# Robot info
|
||||
target_class: FrankaRobotiq85
|
||||
path: "frankarobotiq/robot.usd"
|
||||
|
||||
# CuRobo file
|
||||
robot_file:
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/frankarobotiq_left_arm.yml
|
||||
|
||||
# Gripper parameters
|
||||
gripper_max_width: 0.085
|
||||
gripper_min_width: 0.0
|
||||
tcp_offset: 0.165
|
||||
|
||||
# Solver parameters
|
||||
solver_position_iteration_count: 128
|
||||
solver_velocity_iteration_count: 4
|
||||
stabilization_threshold: 0.005
|
||||
|
||||
# Joint indices
|
||||
left_joint_indices: [0, 1, 2, 3, 4, 5, 6]
|
||||
left_gripper_indices: [7, 8]
|
||||
|
||||
# Paths
|
||||
fl_ee_path: "arm/panda_link8"
|
||||
fl_base_path: "arm/panda_link0"
|
||||
|
||||
# Gripper keypoints
|
||||
fl_gripper_keypoints:
|
||||
tool_head: [0.0, 0.0, 0.155, 1]
|
||||
tool_tail: [0.0, 0.0, 0.025, 1]
|
||||
tool_side: [0.0, 0.045, 0.155, 1]
|
||||
|
||||
# Collision paths
|
||||
fl_filter_paths:
|
||||
- "arm/Robotiq_2F_85/left_inner_finger_pad"
|
||||
- "arm/Robotiq_2F_85/right_inner_finger_pad"
|
||||
fl_forbid_collision_paths:
|
||||
- "arm/panda_link2"
|
||||
- "arm/panda_link3"
|
||||
- "arm/panda_link4"
|
||||
- "arm/panda_link5"
|
||||
- "arm/panda_link6"
|
||||
- "arm/panda_link7"
|
||||
- "arm/panda_link8"
|
||||
|
||||
# Pose processing (Z-axis gripper)
|
||||
R_ee_graspnet: [[0.0, 0.0, -1.0], [0.0, 1.0, 0.0], [1.0, 0.0, 0.0]]
|
||||
ee_axis: "z"
|
||||
|
||||
# Extra depth file
|
||||
extra_depth_file: "tcp2base_offset.json"
|
||||
|
||||
# Default joint home positions
|
||||
left_joint_home: [0, -0.785, 0, -2.356, 0, 1.571, 0.0]
|
||||
left_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_gripper_home: [0.0, 0.0]
|
||||
80
workflows/simbox/core/configs/robots/genie1.yaml
Normal file
80
workflows/simbox/core/configs/robots/genie1.yaml
Normal file
@@ -0,0 +1,80 @@
|
||||
# Genie1 robot configuration
|
||||
# Dual-arm 7-DOF robot with body and head joints
|
||||
|
||||
# Robot info
|
||||
target_class: Genie1
|
||||
path: "G1_120s/robot.usd"
|
||||
|
||||
# CuRobo file
|
||||
robot_file:
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/G1_120s_left_arm_parallel_gripper.yml
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/G1_120s_right_arm_parallel_gripper.yml
|
||||
|
||||
# Gripper parameters
|
||||
gripper_max_width: 0.1
|
||||
gripper_min_width: 0.0
|
||||
tcp_offset: 0.217
|
||||
|
||||
# Solver parameters
|
||||
solver_position_iteration_count: 128
|
||||
solver_velocity_iteration_count: 4
|
||||
stabilization_threshold: 0.005
|
||||
|
||||
# Joint indices
|
||||
left_joint_indices: [4, 6, 8, 10, 12, 14, 16]
|
||||
right_joint_indices: [5, 7, 9, 11, 13, 15, 17]
|
||||
left_gripper_indices: [19]
|
||||
right_gripper_indices: [21]
|
||||
body_indices: [0, 1]
|
||||
head_indices: [2, 3]
|
||||
|
||||
# Paths
|
||||
fl_ee_path: "arm_l_end_link"
|
||||
fr_ee_path: "arm_r_end_link"
|
||||
fl_base_path: "arm_base_link"
|
||||
fr_base_path: "arm_base_link"
|
||||
|
||||
# Gripper keypoints
|
||||
fl_gripper_keypoints:
|
||||
tool_head: [0.0, 0.0, 0.217, 1]
|
||||
tool_tail: [0.0, 0.0, 0.03, 1]
|
||||
tool_side: [0.05, 0.0, 0.217, 1]
|
||||
fr_gripper_keypoints:
|
||||
tool_head: [0.0, 0.0, 0.217, 1]
|
||||
tool_tail: [0.0, 0.0, 0.03, 1]
|
||||
tool_side: [0.05, 0.0, 0.217, 1]
|
||||
|
||||
# Collision paths
|
||||
fl_filter_paths:
|
||||
- "gripper_l_outer_link5"
|
||||
- "gripper_l_inner_link5"
|
||||
fr_filter_paths:
|
||||
- "gripper_r_outer_link5"
|
||||
- "gripper_r_inner_link5"
|
||||
fl_forbid_collision_paths:
|
||||
- "arm_l_link2"
|
||||
- "arm_l_link3"
|
||||
- "arm_l_link4"
|
||||
- "arm_l_link5"
|
||||
fr_forbid_collision_paths:
|
||||
- "arm_r_link2"
|
||||
- "arm_r_link3"
|
||||
- "arm_r_link4"
|
||||
- "arm_r_link5"
|
||||
|
||||
# Pose processing (Z-axis gripper)
|
||||
R_ee_graspnet: [[0.0, 1.0, 0.0], [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]]
|
||||
ee_axis: "z"
|
||||
|
||||
# Extra depth file
|
||||
extra_depth_file: "tcp2base_offset.json"
|
||||
|
||||
# Default joint home positions
|
||||
left_joint_home: [-1.069, 0.608, 0.279, -1.278, 0.727, 1.489, -0.186]
|
||||
right_joint_home: [1.074, -0.611, -0.280, 1.284, -0.730, -1.495, 0.188]
|
||||
left_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_gripper_home: [1.0]
|
||||
right_gripper_home: [1.0]
|
||||
body_home: [0.32, 0.63]
|
||||
head_home: [0.0, 0.349]
|
||||
75
workflows/simbox/core/configs/robots/lift2.yaml
Normal file
75
workflows/simbox/core/configs/robots/lift2.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
# Lift2 robot configuration
|
||||
# Dual-arm 6-DOF robot with lift joint
|
||||
|
||||
# Robot info
|
||||
target_class: Lift2
|
||||
path: "lift2/robot_invisible.usd"
|
||||
|
||||
# CuRobo file
|
||||
robot_file:
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/r5a_left_arm.yml
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/r5a_right_arm.yml
|
||||
|
||||
# Gripper parameters
|
||||
gripper_max_width: 0.088
|
||||
gripper_min_width: 0.0
|
||||
tcp_offset: 0.125
|
||||
|
||||
# Solver parameters
|
||||
solver_position_iteration_count: 128
|
||||
solver_velocity_iteration_count: 4
|
||||
stabilization_threshold: 0.005
|
||||
|
||||
# Joint indices
|
||||
left_joint_indices: [10, 12, 14, 16, 18, 20]
|
||||
right_joint_indices: [9, 11, 13, 15, 17, 19]
|
||||
left_gripper_indices: [23]
|
||||
right_gripper_indices: [21]
|
||||
lift_indices: [6]
|
||||
|
||||
# Paths
|
||||
fl_ee_path: "lift2/lift2/fl/link6"
|
||||
fr_ee_path: "lift2/lift2/fr/link6"
|
||||
fl_base_path: "lift2/lift2/fl/base_link"
|
||||
fr_base_path: "lift2/lift2/fr/base_link"
|
||||
|
||||
# Gripper keypoints
|
||||
fl_gripper_keypoints:
|
||||
tool_head: [0.135, 0.0, 0.0, 1]
|
||||
tool_tail: [0.085, 0.0, 0.0, 1]
|
||||
tool_side: [0.135, -0.044, 0.0, 1]
|
||||
fr_gripper_keypoints:
|
||||
tool_head: [0.135, 0.0, 0.0, 1]
|
||||
tool_tail: [0.085, 0.0, 0.0, 1]
|
||||
tool_side: [0.135, -0.044, 0.0, 1]
|
||||
|
||||
# Collision paths
|
||||
fl_filter_paths:
|
||||
- "lift2/lift2/fl/link7"
|
||||
- "lift2/lift2/fl/link8"
|
||||
fr_filter_paths:
|
||||
- "lift2/lift2/fr/link7"
|
||||
- "lift2/lift2/fr/link8"
|
||||
fl_forbid_collision_paths:
|
||||
- "lift2/lift2/fl/link2"
|
||||
- "lift2/lift2/fl/link3"
|
||||
- "lift2/lift2/fl/link4"
|
||||
- "lift2/lift2/fl/link5"
|
||||
fr_forbid_collision_paths:
|
||||
- "lift2/lift2/fr/link2"
|
||||
- "lift2/lift2/fr/link3"
|
||||
- "lift2/lift2/fr/link4"
|
||||
- "lift2/lift2/fr/link5"
|
||||
|
||||
# Pose processing (X-axis gripper)
|
||||
R_ee_graspnet: [[1.0, 0.0, 0.0], [0.0, -1.0, 0.0], [0.0, 0.0, -1.0]]
|
||||
ee_axis: "x"
|
||||
|
||||
# Default joint home positions
|
||||
left_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_gripper_home: [0.044]
|
||||
right_gripper_home: [0.044]
|
||||
lift_home: [0.46]
|
||||
73
workflows/simbox/core/configs/robots/split_aloha.yaml
Normal file
73
workflows/simbox/core/configs/robots/split_aloha.yaml
Normal file
@@ -0,0 +1,73 @@
|
||||
# SplitAloha robot configuration
|
||||
# Dual-arm 6-DOF robot
|
||||
|
||||
# Robot info
|
||||
target_class: SplitAloha
|
||||
path: "split_aloha_mid_360/robot.usd"
|
||||
|
||||
# CuRobo file
|
||||
robot_file:
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/piper100_left_arm.yml
|
||||
- workflows/simbox/curobo/src/curobo/content/configs/robot/piper100_right_arm.yml
|
||||
|
||||
# Gripper parameters
|
||||
gripper_max_width: 0.10
|
||||
gripper_min_width: 0.0
|
||||
tcp_offset: 0.12
|
||||
|
||||
# Solver parameters
|
||||
solver_position_iteration_count: 128
|
||||
solver_velocity_iteration_count: 4
|
||||
stabilization_threshold: 0.005
|
||||
|
||||
# Joint indices
|
||||
left_joint_indices: [12, 14, 16, 18, 20, 22]
|
||||
right_joint_indices: [13, 15, 17, 19, 21, 23]
|
||||
left_gripper_indices: [24]
|
||||
right_gripper_indices: [26]
|
||||
|
||||
# Paths
|
||||
fl_ee_path: "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6"
|
||||
fr_ee_path: "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6"
|
||||
fl_base_path: "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/arm_base"
|
||||
fr_base_path: "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/arm_base"
|
||||
|
||||
# Gripper keypoints
|
||||
fl_gripper_keypoints:
|
||||
tool_head: [0.0, 0.0, 0.12, 1]
|
||||
tool_tail: [0.0, 0.0, 0.06, 1]
|
||||
tool_side: [-0.05, 0.0, 0.12, 1]
|
||||
fr_gripper_keypoints:
|
||||
tool_head: [0.0, 0.0, 0.12, 1]
|
||||
tool_tail: [0.0, 0.0, 0.06, 1]
|
||||
tool_side: [-0.05, 0.0, 0.12, 1]
|
||||
|
||||
# Collision paths
|
||||
fl_filter_paths:
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link7"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link8"
|
||||
fr_filter_paths:
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link7"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link8"
|
||||
fl_forbid_collision_paths:
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link2"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link3"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link4"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link5"
|
||||
fr_forbid_collision_paths:
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link2"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link3"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link4"
|
||||
- "split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link5"
|
||||
|
||||
# Pose processing (Z-axis gripper)
|
||||
R_ee_graspnet: [[0.0, -1.0, 0.0], [0.0, 0.0, -1.0], [1.0, 0.0, 0.0]]
|
||||
ee_axis: "z"
|
||||
|
||||
# Default joint home positions
|
||||
left_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_gripper_home: [0.05]
|
||||
right_gripper_home: [0.05]
|
||||
@@ -0,0 +1,173 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_h_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_h"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.785, 0.875]
|
||||
apply_randomization: True
|
||||
# fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/electriccooker
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_h_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.20, 0],
|
||||
[0.35, 0.1, 0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.1],
|
||||
[0.025, -0.50, 0.1]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_electrickcooker"
|
||||
language_instruction: "Close the electrickcooker."
|
||||
detailed_language_instruction: "Close the electrickcooker."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_h_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.001 # 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.05
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05 # 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.045]] # 0.03 ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [
|
||||
["rotate", 0.5],
|
||||
["rotate", 0.3],
|
||||
["rotate", 0.2],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
] # ["translate_z", 0.08],
|
||||
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -5
|
||||
x_max: 5
|
||||
y_min: 0
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.02
|
||||
y_min: -0.02
|
||||
y_max: 0.02
|
||||
z_min: -0.03
|
||||
z_max: 0
|
||||
@@ -0,0 +1,173 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_h_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_h"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.785, 0.875]
|
||||
apply_randomization: True
|
||||
# fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/laptop
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_h_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.20, 0],
|
||||
[0.35, 0.1, 0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.1],
|
||||
[0.025, -0.50, 0.1]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_laptop"
|
||||
language_instruction: "Close the laptop."
|
||||
detailed_language_instruction: "Close the laptop."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_h_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.001 # 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.05
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05 # 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.045]] # 0.03 ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [
|
||||
["rotate", 0.5],
|
||||
["rotate", 0.3],
|
||||
["rotate", 0.2],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
] # ["translate_z", 0.08],
|
||||
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -5
|
||||
x_max: 5
|
||||
y_min: 0
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.02
|
||||
y_min: -0.02
|
||||
y_max: 0.02
|
||||
z_min: -0.03
|
||||
z_max: 0
|
||||
@@ -0,0 +1,168 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 1.0]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
# fix_base: True
|
||||
art_cat: art/microwave_gr
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.0, 0.0],
|
||||
[0.25, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.15],
|
||||
[0.025, -0.50, 0.05]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part0"
|
||||
language_instruction: "Close the microwave."
|
||||
detailed_language_instruction: "Close the microwave door."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.2
|
||||
target_inner_product: 0.5
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -25
|
||||
z_max: 25
|
||||
position:
|
||||
x_min: -0.05
|
||||
x_max: 0.0
|
||||
y_min: -0.1
|
||||
y_max: 0.0
|
||||
z_min: -0.02
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,168 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 1.0]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
# fix_base: True
|
||||
art_cat: art/microwave_im
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.05, 0.0],
|
||||
[0.25, 0.30, 0.0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.15],
|
||||
[0.025, -0.50, 0.05]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part1"
|
||||
language_instruction: "Close the microwave."
|
||||
detailed_language_instruction: "Close the microwave door."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.2
|
||||
target_inner_product: 0.5
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -25
|
||||
z_max: 25
|
||||
position:
|
||||
x_min: -0.05
|
||||
x_max: 0.0
|
||||
y_min: -0.1
|
||||
y_max: 0.0
|
||||
z_min: -0.02
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,173 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_h_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_h"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.785, 0.875]
|
||||
apply_randomization: True
|
||||
# fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/pot
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_h_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.20, 0],
|
||||
[0.35, 0.1, 0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.1],
|
||||
[0.025, -0.50, 0.1]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_pot"
|
||||
language_instruction: "Close the pot."
|
||||
detailed_language_instruction: "Close the pot."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_h_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.001 # 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.05
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05 # 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.045]] # 0.03 ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [
|
||||
["rotate", 0.5],
|
||||
["rotate", 0.3],
|
||||
["rotate", 0.2],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
] # ["translate_z", 0.08],
|
||||
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -5
|
||||
x_max: 5
|
||||
y_min: 0
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.02
|
||||
y_min: -0.02
|
||||
y_max: 0.02
|
||||
z_min: -0.03
|
||||
z_max: 0
|
||||
@@ -0,0 +1,173 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_h_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_h"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.785, 0.875]
|
||||
apply_randomization: True
|
||||
# fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/trashcan
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_h_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.20, 0],
|
||||
[0.35, 0.1, 0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.1],
|
||||
[0.025, -0.50, 0.1]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_trashcan"
|
||||
language_instruction: "Close the trashcan."
|
||||
detailed_language_instruction: "Close the trashcan."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_h_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.001 # 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.05
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05 # 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.045]] # 0.03 ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [
|
||||
["rotate", 0.5],
|
||||
["rotate", 0.3],
|
||||
["rotate", 0.2],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
] # ["translate_z", 0.08],
|
||||
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -5
|
||||
x_max: 5
|
||||
y_min: 0
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.02
|
||||
y_min: -0.02
|
||||
y_max: 0.02
|
||||
z_min: -0.03
|
||||
z_max: 0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/floor_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material", "table"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: gr
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 0.8]
|
||||
apply_randomization: True
|
||||
fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/washingmachine_left
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_left
|
||||
target: floor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.28, 0.0],
|
||||
[0.25, 0.45, 0.0]
|
||||
]
|
||||
yaw_rotation: [-15, 15]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: floor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.075],
|
||||
[0.025, -0.50, 0.075]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_washingmachine_part0"
|
||||
language_instruction: "Close the washingmachine."
|
||||
detailed_language_instruction: "Close the washingmachine."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.2
|
||||
target_inner_product: 0.5
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -25
|
||||
z_max: 25
|
||||
position:
|
||||
x_min: -0.05
|
||||
x_max: 0.0
|
||||
y_min: -0.1
|
||||
y_max: 0.0
|
||||
z_min: -0.02
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/floor_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material", "table"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: gr
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 0.8]
|
||||
apply_randomization: True
|
||||
fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/washingmachine_right
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_left
|
||||
target: floor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.28, 0.0],
|
||||
[0.25, 0.45, 0.0]
|
||||
]
|
||||
yaw_rotation: [-15, 15]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: floor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.075],
|
||||
[0.025, -0.50, 0.075]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_washingmachine_part1"
|
||||
language_instruction: "Close the washingmachine."
|
||||
detailed_language_instruction: "Close the washingmachine."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.2
|
||||
target_inner_product: 0.5
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",-0.15],["rotate",-0.15], ["rotate",-0.15], ["rotate",-0.1], ["rotate",-0.1],["rotate",-0.1], ["rotate",-0.1], ["rotate",-0.1], ["rotate",-0.1],["rotate",-0.1],["rotate",-0.05], ["rotate",-0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -25
|
||||
z_max: 25
|
||||
position:
|
||||
x_min: -0.05
|
||||
x_max: 0.0
|
||||
y_min: -0.1
|
||||
y_max: 0.0
|
||||
z_min: -0.02
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,164 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_h_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_h"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.5, 0.6]
|
||||
apply_randomization: True
|
||||
# fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/laptop
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_h_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.20, 0],
|
||||
[0.35, 0.1, 0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.1],
|
||||
[0.025, -0.50, 0.1]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_laptop"
|
||||
language_instruction: "Open the laptop."
|
||||
detailed_language_instruction: "Grasp the lid of the laptop and swing it open."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 500
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_h_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis_from_keypoint_name: articulated_object_tail
|
||||
target_axis_to_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0005
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.07]] # avoid high-difficulty motions seen in collected training demos
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
modify_actuation_motion: ["translate_z", 0.02] # move 0.02 deeper along this axis
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,163 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.34, 0.45]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
# fix_base: True
|
||||
art_cat: art/microwave_gr
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, 0.0, 0.0],
|
||||
[0.35, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.15],
|
||||
[0.025, -0.50, 0.05]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part0"
|
||||
language_instruction: "Open the microwave."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 500
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.7
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["translate_z", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2],["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -3.0
|
||||
y_max: 3.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.01
|
||||
y_max: 0.01
|
||||
z_min: -0.03
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,163 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.34, 0.45]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
# fix_base: True
|
||||
art_cat: art/microwave_im
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, 0.05, 0.0],
|
||||
[0.35, 0.30, 0.0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.15],
|
||||
[0.025, -0.50, 0.05]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part1"
|
||||
language_instruction: "Open the microwave."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 500
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.7
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["translate_z", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2],["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -3.0
|
||||
y_max: 3.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.01
|
||||
y_max: 0.01
|
||||
z_min: -0.03
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,164 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_h_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_h"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.5, 0.6]
|
||||
apply_randomization: True
|
||||
# fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/pot
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_h_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.20, 0],
|
||||
[0.35, 0.1, 0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.1],
|
||||
[0.025, -0.50, 0.1]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_pot"
|
||||
language_instruction: "Open the pot."
|
||||
detailed_language_instruction: "Grasp the lid of the pot and swing it open."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 500
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_h_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis_from_keypoint_name: articulated_object_tail
|
||||
target_axis_to_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0005
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.07]] # avoid high-difficulty motions seen in collected training demos
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
modify_actuation_motion: ["translate_z", 0.02] # move 0.02 deeper along this axis
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,164 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home_std: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_h_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_h"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.5, 0.6]
|
||||
apply_randomization: True
|
||||
# fix_base: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/trashcan
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_h_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.20, 0],
|
||||
[0.35, 0.1, 0]
|
||||
]
|
||||
yaw_rotation: [-45, 45]
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.50, -0.1],
|
||||
[0.025, -0.50, 0.1]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "${tasks.0.robots.0.name}/fr3/panda_hand" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.85, -0.75, 1.45]
|
||||
orientation: [0.73, 0.50, 0.26, 0.39]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_trashcan"
|
||||
language_instruction: "Open the trashcan."
|
||||
detailed_language_instruction: "Grasp the lid of the trashcan and swing it open."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 500
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_h_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis_from_keypoint_name: articulated_object_tail
|
||||
target_axis_to_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0005
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.07]] # avoid high-difficulty motions seen in collected training demos
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
modify_actuation_motion: ["translate_z", 0.02] # move 0.02 deeper along this axis
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,180 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 0.8]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_gr
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part0"
|
||||
language_instruction: "Close the microwave with left arm."
|
||||
detailed_language_instruction: "Close the microwave door with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.1 # 0.0
|
||||
z_min: -0.05 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
@@ -0,0 +1,180 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 0.8]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_im
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.05, 0.0],
|
||||
[0.05, 0.20, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part1"
|
||||
language_instruction: "Close the microwave with left arm."
|
||||
detailed_language_instruction: "Close the microwave door with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.1 # 0.0
|
||||
z_min: -0.05 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
@@ -0,0 +1,180 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 0.8]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_gr
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.25, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part2"
|
||||
language_instruction: "Close the microwave with right arm."
|
||||
detailed_language_instruction: "Close the microwave door with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.1 # 0.0
|
||||
z_min: -0.05 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
@@ -0,0 +1,180 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.6, 0.8]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_im
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.05, 0.0],
|
||||
[0.30, 0.20, 0.00]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part3"
|
||||
language_instruction: "Close the microwave with right arm."
|
||||
detailed_language_instruction: "Close the microwave door with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.1 # 0.0
|
||||
z_min: -0.05 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
@@ -0,0 +1,403 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
# right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
# left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
# right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: carton
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
euler: [0.0, 0.0, -90.0]
|
||||
strict_init:
|
||||
joint_positions: [1.3, -1.3]
|
||||
joint_indices: [0, 1]
|
||||
info_name: "close_h_left"
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
optimize_2d_layout: False
|
||||
art_cat: art/close_the_package/carton
|
||||
|
||||
regions:
|
||||
-
|
||||
object: carton
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.2, 0.0],
|
||||
[0.05, -0.025, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.8, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "close_the_package"
|
||||
language_instruction: "Close the package."
|
||||
detailed_language_instruction: "Close the package."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: artpreplan
|
||||
objects: [carton]
|
||||
obj_info_path: art/close_the_package/carton/carton_9/Kps/close_h_right/info.json
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
update_art_joint: True
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
# - axis_from_keypoint_name: tool_head
|
||||
# axis_to_keypoint_name: tool_side
|
||||
# cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
# cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
# target_axis: link0_contact_axis
|
||||
# target_axis_frame: object
|
||||
# tolerance: 0.1
|
||||
# target_inner_product: -1
|
||||
# type: frame_axis_parallel
|
||||
# name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",-0.15],["rotate",-0.15], ["rotate",-0.15], ["rotate",-0.1], ["rotate",-0.1],["rotate",-0.1], ["rotate",-0.1], ["rotate",-0.1], ["rotate",-0.1],["rotate",-0.1],["rotate",-0.05], ["rotate",-0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# # in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: -0.03 # -0.02
|
||||
y_max: 0.0 # 0.0
|
||||
z_min: -0.03 # -0.05
|
||||
z_max: 0.03 # 0.0
|
||||
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: artpreplan
|
||||
objects: [carton]
|
||||
obj_info_path: art/close_the_package/carton/carton_9/Kps/close_h_left/info.json
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
update_art_joint: True
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
# - axis_from_keypoint_name: tool_head
|
||||
# axis_to_keypoint_name: tool_side
|
||||
# cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
# cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
# target_axis: link0_contact_axis
|
||||
# target_axis_frame: object
|
||||
# tolerance: 0.1
|
||||
# target_inner_product: -1
|
||||
# type: frame_axis_parallel
|
||||
# name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# # in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.03 # 0.0
|
||||
z_min: -0.03 # -0.05
|
||||
z_max: 0.03 # 0.0
|
||||
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [carton]
|
||||
obj_info_path: art/close_the_package/carton/carton_9/Kps/close_h_right/info.json
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
update_art_joint: True
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
# - axis_from_keypoint_name: tool_head
|
||||
# axis_to_keypoint_name: tool_side
|
||||
# cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
# cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
# target_axis: link0_contact_axis
|
||||
# target_axis_frame: object
|
||||
# tolerance: 0.1
|
||||
# target_inner_product: -1
|
||||
# type: frame_axis_parallel
|
||||
# name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",-0.15],["rotate",-0.15], ["rotate",-0.15], ["rotate",-0.1], ["rotate",-0.1],["rotate",-0.1], ["rotate",-0.1], ["rotate",-0.1], ["rotate",-0.1],["rotate",-0.1],["rotate",-0.05], ["rotate",-0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# # in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: -0.03 # -0.02
|
||||
y_max: 0.0 # 0.0
|
||||
z_min: -0.03 # -0.05
|
||||
z_max: 0.03 # 0.0
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [carton]
|
||||
obj_info_path: art/close_the_package/carton/carton_9/Kps/close_h_left/info.json
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
update_art_joint: True
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
# - axis_from_keypoint_name: tool_head
|
||||
# axis_to_keypoint_name: tool_side
|
||||
# cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
# cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
# target_axis: link0_contact_axis
|
||||
# target_axis_frame: object
|
||||
# tolerance: 0.1
|
||||
# target_inner_product: -1
|
||||
# type: frame_axis_parallel
|
||||
# name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.05
|
||||
target_inner_product: 1.0
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# # in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.03 # 0.0
|
||||
z_min: -0.03 # -0.05
|
||||
z_max: 0.03 # 0.0
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
@@ -0,0 +1,306 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
objects:
|
||||
-
|
||||
name: microwave
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [1.2, 1.2]
|
||||
info_name: "close_v"
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
optimize_2d_layout: False
|
||||
art_cat: art/heat_the_food_in_the_microwave/microwave
|
||||
-
|
||||
name: pick_0
|
||||
path: art/heat_the_food_in_the_microwave/pick_objs/omniobject3d-bread_090/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
optimize_2d_layout: False
|
||||
|
||||
regions:
|
||||
-
|
||||
object: microwave
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.05, 0.0],
|
||||
[0.05, 0.05, 0.0]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: pick_0
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.15, -0.30, 0.005],
|
||||
[0.25, -0.23, 0.005]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.8, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "heat_the_food_in_the_microwave"
|
||||
language_instruction: "Pick all the objects into the microwave and close the microwave"
|
||||
detailed_language_instruction: "Pick all the objects into the microwave and close the microwave"
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: artpreplan
|
||||
objects: [microwave]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.1 # 0.0
|
||||
z_min: -0.05 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: pick
|
||||
objects: [pick_0]
|
||||
filter_z_dir: ["forward", 45]
|
||||
filter_x_dir: ["downward", 135]
|
||||
# filter_z_dir: ["upward", 60]
|
||||
# filter_x_dir: ["forward", 90]
|
||||
pre_grasp_offset: 0.05
|
||||
gripper_change_steps: 10
|
||||
post_grasp_offset_min: 0.05
|
||||
post_grasp_offset_max: 0.1
|
||||
-
|
||||
name: place
|
||||
place_part_prim_path: "base"
|
||||
place_direction: "horizontal"
|
||||
align_place_obj_axis: [1.0, 0.0, 0.0]
|
||||
ignore_substring: ["microwave"]
|
||||
objects: [pick_0, microwave]
|
||||
# filter_z_dir: ["forward", 90]
|
||||
# filter_x_dir: ["downward", 120]
|
||||
filter_z_dir: ["upward", 45]
|
||||
filter_x_dir: ["forward", 45]
|
||||
y_ratio_range: [0.2, 0.4]
|
||||
x_ratio_range: [0.4, 0.6]
|
||||
z_ratio_range: [0.4, 0.6]
|
||||
pre_place_z_offset: 0.05
|
||||
place_z_offset: 0.05
|
||||
post_place_vector: [-0.1, 0.0, 0.0]
|
||||
# position_constraint: object
|
||||
success_mode: xybbox
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [microwave]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -25
|
||||
x_max: 25
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -3
|
||||
z_max: 3
|
||||
position:
|
||||
x_min: -0.02 # -0.1
|
||||
x_max: 0.0 # 0.0
|
||||
y_min: 0.0 # -0.02
|
||||
y_max: 0.1 # 0.0
|
||||
z_min: -0.05 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
@@ -0,0 +1,195 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/floor_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [3000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: table
|
||||
path: table0/instance.usd
|
||||
target_class: GeometryObject
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001053, 0.001056]
|
||||
texture:
|
||||
texture_lib: "table_textures"
|
||||
apply_randomization: True
|
||||
texture_id: 0
|
||||
texture_scale: [0.001, 0.001]
|
||||
-
|
||||
name: open_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.34, 0.45]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: articulations/microwave_im
|
||||
|
||||
regions:
|
||||
-
|
||||
object: table
|
||||
target: floor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, 0.0, 0.0],
|
||||
[0.0, 0.0, 0.2]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: open_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, 0.05, 0.0],
|
||||
[0.0, 0.20, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: floor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.85, 0.05],
|
||||
[0.025, -0.80, 0.15]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
data:
|
||||
task_dir: "open_the_microwave_left"
|
||||
language_instruction: "Open the microwave with left arm."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["translate_x", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -3.0
|
||||
y_max: 3.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: -0.01
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.04
|
||||
@@ -0,0 +1,175 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.34, 0.45]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_gr
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.025, 0.0],
|
||||
[0.05, 0.175, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part0"
|
||||
language_instruction: "Open the microwave with left arm."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["translate_x", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -3.0
|
||||
y_max: 3.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: -0.01
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.04
|
||||
@@ -0,0 +1,175 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.34, 0.45]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_im
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, 0.05, 0.0],
|
||||
[0.0, 0.20, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part1"
|
||||
language_instruction: "Open the microwave with left arm."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["translate_x", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -3.0
|
||||
y_max: 3.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: -0.01
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.04
|
||||
@@ -0,0 +1,175 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.34, 0.45]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_gr
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.025, 0.0],
|
||||
[0.25, 0.175, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part2"
|
||||
language_instruction: "Open the microwave with right arm."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["translate_x", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -3.0
|
||||
y_max: 3.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: -0.01
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.04
|
||||
@@ -0,0 +1,175 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.34, 0.45]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/microwave_im
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.0, 0.05, 0.0],
|
||||
[0.35, 0.20, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part3"
|
||||
language_instruction: "Open the microwave with right arm."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["translate_x", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -3.0
|
||||
y_max: 3.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: -0.01
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.04
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_bottom
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_left_arm_bottom"
|
||||
language_instruction: "Pull the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.04], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -5.0
|
||||
x_max: 5.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: -0.03
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_middle
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.6],
|
||||
[0.025, -0.80, -0.5]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_left_arm_middle"
|
||||
language_instruction: "Pull the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.04], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -5.0
|
||||
x_max: 5.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: -0.03
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_top
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.5],
|
||||
[0.025, -0.80, -0.4]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_left_arm_top"
|
||||
language_instruction: "Pull the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.04], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -5.0
|
||||
x_max: 5.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: -0.03
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_bottom
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.40, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_right_arm_bottom"
|
||||
language_instruction: "Pull the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.04], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -5.0
|
||||
x_max: 5.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: -0.03
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_middle
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.40, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.6],
|
||||
[0.025, -0.80, -0.5]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_right_arm_middle"
|
||||
language_instruction: "Pull the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.04], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -5.0
|
||||
x_max: 5.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: -0.03
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_top
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.40, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.5],
|
||||
[0.025, -0.80, -0.4]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_right_arm_top"
|
||||
language_instruction: "Pull the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.04], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05], ["translate_y", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -5.0
|
||||
x_max: 5.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: -0.01
|
||||
x_max: 0.01
|
||||
y_min: -0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: -0.03
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.175]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_bottom
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, -0.025, 0.0],
|
||||
[0.05, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_left_arm_bottom"
|
||||
language_instruction: "Push the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_left]
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.15],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -45
|
||||
x_max: 45
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -5
|
||||
z_max: 5
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.005
|
||||
z_max: 0.005
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.175]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_middle
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, -0.025, 0.0],
|
||||
[0.05, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.6],
|
||||
[0.025, -0.80, -0.5]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_left_arm_middle"
|
||||
language_instruction: "Push the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_left]
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.15],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -45
|
||||
x_max: 45
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -5
|
||||
z_max: 5
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.005
|
||||
z_max: 0.005
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.175]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_top
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, -0.025, 0.0],
|
||||
[0.05, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.5],
|
||||
[0.025, -0.80, -0.4]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_left_arm_top"
|
||||
language_instruction: "Push the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_left]
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.15],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -45
|
||||
x_max: 45
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -5
|
||||
z_max: 5
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.005
|
||||
z_max: 0.005
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.175]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_bottom
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.025, 0.0],
|
||||
[0.40, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.7],
|
||||
[0.025, -0.80, -0.6]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_right_arm_bottom"
|
||||
language_instruction: "Push the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_right]
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.15],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -45
|
||||
x_max: 45
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -5
|
||||
z_max: 5
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.005
|
||||
z_max: 0.005
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.175]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_middle
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.025, 0.0],
|
||||
[0.40, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.6],
|
||||
[0.025, -0.80, -0.5]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_right_arm_middle"
|
||||
language_instruction: "Push the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_right]
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.15],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -45
|
||||
x_max: 45
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -5
|
||||
z_max: 5
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.005
|
||||
z_max: 0.005
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.175]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: art/storagefurniture_top
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.025, 0.0],
|
||||
[0.40, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: lift2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.8, -0.5],
|
||||
[0.025, -0.80, -0.4]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: False
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_right_arm_top"
|
||||
language_instruction: "Push the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_right]
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_x", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_x", 0.15],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05],["translate_x", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: -45
|
||||
x_max: 45
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -5
|
||||
z_max: 5
|
||||
position:
|
||||
x_min: -0.02
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.005
|
||||
z_max: 0.005
|
||||
@@ -0,0 +1,174 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.78, 0.875]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/microwave_gr"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.30, -0.05, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.86, -0.765],
|
||||
[0.0, -0.86, -0.765]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part0"
|
||||
language_instruction: "Close the microwave with left arm."
|
||||
detailed_language_instruction: "Close the microwave door with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -30
|
||||
z_max: 30
|
||||
position:
|
||||
x_min: 0.0 # -0.1
|
||||
x_max: 0.1 # 0.0
|
||||
y_min: -0.05 # -0.02
|
||||
y_max: 0.0 # 0.0
|
||||
z_min: -0.02 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
@@ -0,0 +1,174 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_v_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "close_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.78, 0.875]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/microwave_gr"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_v_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.30, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.765],
|
||||
[0.025, -0.86, -0.765]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "close_the_microwave_part1"
|
||||
language_instruction: "Close the microwave with right arm."
|
||||
detailed_language_instruction: "Close the microwave door with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [close_v_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.08
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.0001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.005
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [ ["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [ ["rotate",0.15],["rotate",0.15], ["rotate",0.15], ["rotate",0.1], ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.1],["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
# post_actuation_motions: [ ["rotate",0.1],["rotate",0.1], ["rotate",0.1], ["rotate",0.1], ["rotate",0.1],["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05], ["rotate",0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -3
|
||||
y_max: 3
|
||||
z_min: -30
|
||||
z_max: 30
|
||||
position:
|
||||
x_min: 0.0 # -0.1
|
||||
x_max: 0.1 # 0.0
|
||||
y_min: -0.05 # -0.02
|
||||
y_max: 0.0 # 0.0
|
||||
z_min: -0.02 # -0.05
|
||||
z_max: 0.0 # 0.0
|
||||
@@ -0,0 +1,180 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
# right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_h_down_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: grutopia
|
||||
info_name: "close_h_down"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.30, 0.30]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/oven"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_h_down_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.05, 0.005],
|
||||
[0.05, 0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [-10, 10]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "close_the_oven_part0"
|
||||
language_instruction: "Close the oven with left arm."
|
||||
detailed_language_instruction: "Close the oven door with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [close_h_down_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.03
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.001 # 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis_from_keypoint_name: articulated_object_head
|
||||
target_axis_to_keypoint_name: articulated_object_tail
|
||||
target_axis_frame: object
|
||||
tolerance: 0.05
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.5 # 0.05
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.045]] # 0.03 ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [
|
||||
["rotate", 0.5],
|
||||
["rotate", 0.3],
|
||||
["rotate", 0.2],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
] # ["translate_z", 0.08],
|
||||
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0
|
||||
x_max: 0
|
||||
y_min: 0
|
||||
y_max: 0
|
||||
z_min: 0
|
||||
z_max: 0
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: 0
|
||||
@@ -0,0 +1,180 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
# right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: close_h_down_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: grutopia
|
||||
info_name: "close_h_down"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.30, 0.30]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/oven"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: close_h_down_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.05, 0.005],
|
||||
[0.25, 0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [-10, 10]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "close_the_oven_part1"
|
||||
language_instruction: "Close the oven with right arm."
|
||||
detailed_language_instruction: "Close the oven door with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [close_h_down_right]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.03
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.001 # 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis_from_keypoint_name: articulated_object_head
|
||||
target_axis_to_keypoint_name: articulated_object_tail
|
||||
target_axis_frame: object
|
||||
tolerance: 0.05
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.5 # 0.05
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.045]] # 0.03 ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [
|
||||
["rotate", 0.5],
|
||||
["rotate", 0.3],
|
||||
["rotate", 0.2],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
["rotate", 0.1],
|
||||
] # ["translate_z", 0.08],
|
||||
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0
|
||||
x_max: 0
|
||||
y_min: 0
|
||||
y_max: 0
|
||||
z_min: 0
|
||||
z_max: 0
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: -0.03
|
||||
z_max: 0
|
||||
@@ -0,0 +1,174 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
# right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_handle_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: grutopia
|
||||
info_name: "open_v_handle"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.05, 0.05]
|
||||
apply_randomization: False
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/handle_objs/open_v_handle/microwave"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_handle_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.05, 0.005],
|
||||
[0.05, 0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [-10, 10]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "grasp_the_microwave_handl_part0"
|
||||
language_instruction: "Grasp the microwave handle and open it with left arm."
|
||||
detailed_language_instruction: "Grab the handle of the microwave door and swing it open horizontally with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_handle_left]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
success_mode: abs
|
||||
# update_art_joint: True
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis_from_keypoint_name: articulated_object_head
|
||||
target_axis_to_keypoint_name: articulated_object_tail
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.6
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.03]]
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,174 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
# right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_handle_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: grutopia
|
||||
info_name: "open_v_handle"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.05, 0.05]
|
||||
apply_randomization: False
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/handle_objs/open_v_handle/microwave"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_handle_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.05, 0.005],
|
||||
[0.25, 0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [-10, 10]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "grasp_the_microwave_handl_part1"
|
||||
language_instruction: "Grasp the microwave handle and open it with right arm."
|
||||
detailed_language_instruction: "Grab the handle of the microwave door and swing it open horizontally with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_handle_right]
|
||||
collision_valid: False
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
success_mode: abs
|
||||
# update_art_joint: True
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis_from_keypoint_name: articulated_object_head
|
||||
target_axis_to_keypoint_name: articulated_object_tail
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.6
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.03]]
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.38, 0.38]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/microwave_gr"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.30, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-20, 20]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.86, -0.765],
|
||||
[0.0, -0.86, -0.765]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part0"
|
||||
language_instruction: "Open the microwave with left arm."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,168 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_v_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
info_name: "open_v"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [0.38, 0.38]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/microwave_gr"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_v_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.30, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-20, 20]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.86, -0.765],
|
||||
[0.0, -0.86, -0.765]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_part1"
|
||||
language_instruction: "Open the microwave with right arm."
|
||||
detailed_language_instruction: "Grab the upper part of the microwave door and swing it open with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [open_v_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.52
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.2], ["rotate", -0.1], ["rotate", -0.1],["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,243 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
# left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
# right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
# constrain_grasp_approach: True
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: microwave
|
||||
target_class: ArticulatedObject
|
||||
dataset: oo3d
|
||||
joint_position_range: [0.2, 0.2]
|
||||
info_name: "open_v_handle"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.007926725892163465,
|
||||
0.007926725892163465,
|
||||
0.007926725892163465,]
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: art/open_the_microwave_from_scratch/microwave
|
||||
|
||||
regions:
|
||||
-
|
||||
object: microwave
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.10, 0.15, 0.05],
|
||||
[0.05, 0.25, 0.05]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.86, -0.765],
|
||||
[0.0, -0.86, -0.765]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "open_the_microwave_from_scratch"
|
||||
language_instruction: "Open the microwave."
|
||||
detailed_language_instruction: "Open the microwave."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 4000
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [microwave]
|
||||
collision_valid: False
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
update_art_joint: True
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.2
|
||||
success_mode: "abs"
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis_from_keypoint_name: articulated_object_head
|
||||
target_axis_to_keypoint_name: articulated_object_tail
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.5
|
||||
target_inner_product: 0.7
|
||||
type: frame_axis_parallel
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
pre_actuation_motions: [["translate_z", -0.07]]
|
||||
post_actuation_motions: [["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
-
|
||||
name: gripper__action
|
||||
gripper_state: 1 # Open
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
|
||||
-
|
||||
name: open
|
||||
objects: [microwave]
|
||||
obj_info_path: art/open_the_microwave_from_scratch/microwave/microwave_0013/Kps/open_v_inner/info.json
|
||||
collision_valid: False
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
success_mode: "abs"
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.3
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -0.7
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: hand_parallel_to_link0_edge_door
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -0.7
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
pre_actuation_motions: [["rotate", 0.15]] #[["translate_y", 0.05]]
|
||||
post_actuation_motions: [["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.1], ["rotate", -0.1], ["rotate", -0.05], ["rotate", -0.05], ["rotate", -0.05], ["rotate", -0.05], ["rotate", -0.05]]
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.03
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.03
|
||||
-
|
||||
name: gripper__action
|
||||
gripper_state: 1 # Open
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
@@ -0,0 +1,178 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
# right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_h_handle_down_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: grutopia
|
||||
info_name: "open_h_down_handle"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [-0.05, -0.05]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/oven"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_h_handle_down_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.25, 0.05, 0.005],
|
||||
[0.05, 0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [-10, 10]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "open_the_oven_part0"
|
||||
language_instruction: "Open the oven with left arm."
|
||||
detailed_language_instruction: "Grab the handle of the oven door and swing it open by 30 degrees with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [open_h_handle_down_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.2
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
# - axis_from_keypoint_name: tool_head
|
||||
# axis_to_keypoint_name: tool_side
|
||||
# target_axis_from_keypoint_name: articulated_object_head
|
||||
# target_axis_to_keypoint_name: articulated_object_tail
|
||||
# target_axis_frame: object
|
||||
# tolerance: 0.0005
|
||||
# target_inner_product: -1
|
||||
# type: frame_axis_parallel
|
||||
# name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.03]]
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,178 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
# left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
# right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: open_h_handle_down_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: grutopia
|
||||
info_name: "open_h_down_handle"
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
joint_position_range: [-0.05, -0.05]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
art_cat: "art/oven"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: open_h_handle_down_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.05, 0.005],
|
||||
[0.25, 0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [-10, 10]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "open_the_oven_part1"
|
||||
language_instruction: "Open the oven with right arm."
|
||||
detailed_language_instruction: "Grab the handle of the oven door and swing it open by 30 degrees with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [open_h_handle_down_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.2
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: articulated_object_head
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
# - axis_from_keypoint_name: tool_head
|
||||
# axis_to_keypoint_name: tool_side
|
||||
# target_axis_from_keypoint_name: articulated_object_head
|
||||
# target_axis_to_keypoint_name: articulated_object_tail
|
||||
# target_axis_frame: object
|
||||
# tolerance: 0.0005
|
||||
# target_inner_product: -1
|
||||
# type: frame_axis_parallel
|
||||
# name: hand_parallel_to_axis_computed_by_keypoints
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
cross_target_axis1_from_keypoint_name: articulated_object_head
|
||||
cross_target_axis1_to_keypoint_name: articulated_object_tail
|
||||
target_axis: link0_contact_axis
|
||||
target_axis_frame: object # cross_target_axis2_frame
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel # enforce parallelism via cross product constraint
|
||||
name: fingers_orthogonal_to_link0
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.03]]
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.15], ["rotate", -0.1], ["rotate", -0.1]]
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: 0.0
|
||||
y_max: 0.0
|
||||
z_min: 0.0
|
||||
z_max: 0.0
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_bottom"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.8],
|
||||
[0.025, -0.86, -0.70]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_left_arm_bottom"
|
||||
language_instruction: "Pull the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -5.0
|
||||
y_max: 5.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.01
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_middle"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.7],
|
||||
[0.025, -0.86, -0.60]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_left_arm_middle"
|
||||
language_instruction: "Pull the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -5.0
|
||||
y_max: 5.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.01
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_top"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, 0.0, 0.0],
|
||||
[0.05, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.6],
|
||||
[0.025, -0.86, -0.50]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_left_arm_top"
|
||||
language_instruction: "Pull the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -5.0
|
||||
y_max: 5.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.01
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_bottom"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.35, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.8],
|
||||
[0.025, -0.86, -0.70]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_right_arm_bottom"
|
||||
language_instruction: "Pull the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -5.0
|
||||
y_max: 5.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.01
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_middle"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.35, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.7],
|
||||
[0.025, -0.86, -0.60]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_right_arm_middle"
|
||||
language_instruction: "Pull the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -5.0
|
||||
y_max: 5.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.01
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,166 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pull_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.09, 0.12]
|
||||
info_name: "pull"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_top"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pull_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.0, 0.0],
|
||||
[0.35, 0.15, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.6],
|
||||
[0.025, -0.86, -0.50]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "pull_the_storagefurniture_right_arm_top"
|
||||
language_instruction: "Pull the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Pull and open the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: open
|
||||
objects: [pull_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: OpenBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.07
|
||||
constraint_list:
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_tail
|
||||
target_axis: object_link0_vertical_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: []
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.04], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05], ["translate_x", -0.05]]
|
||||
|
||||
keypose_random_range:
|
||||
orientation:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -5.0
|
||||
y_max: 5.0
|
||||
z_min: -5.0
|
||||
z_max: 5.0
|
||||
position:
|
||||
x_min: 0.0
|
||||
x_max: 0.0
|
||||
y_min: -0.03
|
||||
y_max: 0.03
|
||||
z_min: -0.01
|
||||
z_max: -0.01
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.20]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_bottom"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.025, 0.0],
|
||||
[0.05, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_left_arm_bottom"
|
||||
language_instruction: "Push the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.15],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -5
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: -0.005
|
||||
y_max: 0.005
|
||||
z_min: -0.02
|
||||
z_max: 0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.20]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_middle"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.025, 0.0],
|
||||
[0.05, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.8],
|
||||
[0.025, -0.86, -0.70]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_left_arm_middle"
|
||||
language_instruction: "Push the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.15],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -5
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: -0.005
|
||||
y_max: 0.005
|
||||
z_min: -0.02
|
||||
z_max: 0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_left
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.20]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_top"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.025, 0.0],
|
||||
[0.05, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.7],
|
||||
[0.025, -0.86, -0.60]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_left_arm_top"
|
||||
language_instruction: "Push the storagefurniture with left arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_left]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.15],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -5
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: -0.005
|
||||
y_max: 0.005
|
||||
z_min: -0.02
|
||||
z_max: 0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.20]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_bottom"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.025, 0.0],
|
||||
[0.35, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.9],
|
||||
[0.025, -0.86, -0.80]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_right_arm_bottom"
|
||||
language_instruction: "Push the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.15],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -5
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: -0.005
|
||||
y_max: 0.005
|
||||
z_min: -0.02
|
||||
z_max: 0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.20]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_middle"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.025, 0.0],
|
||||
[0.35, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.8],
|
||||
[0.025, -0.86, -0.70]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_right_arm_middle"
|
||||
language_instruction: "Push the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.15],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -5
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: -0.005
|
||||
y_max: 0.005
|
||||
z_min: -0.02
|
||||
z_max: 0
|
||||
@@ -0,0 +1,169 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "split_aloha"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/split_aloha.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
right_joint_home: [0.00484993, 0.34198609, -0.14007858, 0.01680429, 0.14391101, -0.00252178]
|
||||
left_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
right_joint_home_std: [0.12513939, 0.24539099, 0.24468172, 0.23398885, 0.2710117, 0.21726329]
|
||||
ignore_substring: ["material"]
|
||||
|
||||
objects:
|
||||
-
|
||||
name: push_art_right
|
||||
target_class: ArticulatedObject
|
||||
dataset: pm
|
||||
joint_position_range: [0.10, 0.20]
|
||||
info_name: "push"
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
path: ""
|
||||
category: ""
|
||||
obj_info_path: ""
|
||||
fix_base: True
|
||||
art_cat: "art/storagefurniture_top"
|
||||
|
||||
regions:
|
||||
-
|
||||
object: push_art_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.025, 0.0],
|
||||
[0.35, 0.125, 0.0]
|
||||
]
|
||||
yaw_rotation: [-30, 30]
|
||||
-
|
||||
object: split_aloha
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.86, -0.7],
|
||||
[0.025, -0.86, -0.60]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: split_aloha_hand_left
|
||||
translation: [0.0, 0.08, 0.05]
|
||||
orientation: [0.0, 0.0, 0.965, 0.259]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fl/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_hand_right
|
||||
translation: [0.0, 0.08, 0.04]
|
||||
orientation: [0.0, 0.0, 0.972, 0.233]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/astra.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/fr/link6" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: split_aloha_head
|
||||
translation: [0.0, -0.00818, 0.1]
|
||||
orientation: [0.658, 0.259, -0.282, -0.648]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "split_aloha/split_aloha_mid_360_with_piper/split_aloha_mid_360_with_piper/top_camera_link" # todo: robot base frame
|
||||
|
||||
data:
|
||||
task_dir: "push_the_storagefurniture_right_arm_top"
|
||||
language_instruction: "Push the storagefurniture with right arm."
|
||||
detailed_language_instruction: "Push and close the storagefurniture with the right robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480"
|
||||
update: True
|
||||
max_episode_length: 600
|
||||
|
||||
skills:
|
||||
-
|
||||
split_aloha:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: close
|
||||
objects: [push_art_right]
|
||||
# debug start: KPAMPlanner
|
||||
planner_setting:
|
||||
task_name: CloseBox
|
||||
category_name: Articulated
|
||||
|
||||
tool_keypoint_name_list: [tool_head, tool_tail, tool_side]
|
||||
object_keypoint_name_list: [articulated_object_head, articulated_object_tail]
|
||||
success_threshold: 0.01
|
||||
constraint_list:
|
||||
# ensure the gripper to be in contact with the box lid with whole fingers
|
||||
- keypoint_name: tool_head
|
||||
target_keypoint_name: link_contact_point
|
||||
tolerance: 0.000001
|
||||
type: point2point_constraint
|
||||
name: fingers_contact_with_link0
|
||||
|
||||
# ensure surface of the gripper to be parallel to the box lid
|
||||
- axis_from_keypoint_name: tool_head
|
||||
axis_to_keypoint_name: tool_side
|
||||
target_axis: object_link0_contact_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.0005
|
||||
target_inner_product: -1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_edge
|
||||
|
||||
- axis_from_keypoint_name: tool_tail
|
||||
axis_to_keypoint_name: tool_head
|
||||
target_axis: object_link0_move_axis
|
||||
target_axis_frame: object
|
||||
tolerance: 0.3
|
||||
target_inner_product: 1
|
||||
type: frame_axis_parallel
|
||||
name: hand_parallel_to_link0_move_axis
|
||||
|
||||
contact_pose_index: 2
|
||||
# pre-actuation pose list.
|
||||
pre_actuation_motions: [["translate_z", -0.05]] # ["translate_z", -0.0001] , ["translate_x", -0.01],
|
||||
# post-actuation pose list
|
||||
post_actuation_motions: [["translate_z", 0.15],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05],["translate_z", 0.05]] # ["translate_z", 0.08],
|
||||
|
||||
# in link8 frame, in degree, in metre
|
||||
keypose_random_range:
|
||||
orientation: # rotation around each axis (degrees)
|
||||
x_min: -3
|
||||
x_max: 3
|
||||
y_min: -5
|
||||
y_max: 5
|
||||
z_min: -45
|
||||
z_max: 45
|
||||
position:
|
||||
x_min: -0.03
|
||||
x_max: 0.03
|
||||
y_min: -0.005
|
||||
y_max: 0.005
|
||||
z_min: -0.02
|
||||
z_max: 0
|
||||
@@ -0,0 +1,102 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
# arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_clean_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [5000, 5500]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "franka"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/fr3.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.0, -0.143, 0.0, -2.435, 0.0, 2.235, 0.789]
|
||||
left_joint_home_std: [0.0157, 0.0263, 0.0209, 0.0247, 0.0187, 0.0243, 0.0281]
|
||||
constrain_grasp_approach: True
|
||||
|
||||
objects:
|
||||
[]
|
||||
|
||||
regions:
|
||||
-
|
||||
object: franka
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.495, 0.0],
|
||||
[0.0, -0.445, 0.05]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: franka_hand
|
||||
translation: [0.085, 0.0, -0.02]
|
||||
orientation: [0.153, 0.690, 0.690, 0.153]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d435i.yaml
|
||||
parent: "franka/fr3/panda_hand"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
-
|
||||
name: franka_head
|
||||
translation: [0.0, 0.65, 1.24]
|
||||
orientation: [0.000, 0.000, -0.466, -0.885]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.06
|
||||
max_orientation_noise: 10.0
|
||||
|
||||
data:
|
||||
task_dir: "track_the_targets"
|
||||
language_instruction: "Use the grippers to track the targets over the table."
|
||||
detailed_language_instruction: "Move the franka arm to track the target over the table. Keep tracking until the target disappears."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 1200
|
||||
|
||||
skills:
|
||||
-
|
||||
franka:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: track
|
||||
target: target_left
|
||||
ignore_substring: ["visual"]
|
||||
T_tcp_2_ee:
|
||||
[
|
||||
[1, 0, 0, 0],
|
||||
[0, 1, 0, 0],
|
||||
[0, 0, 1, 0.1],
|
||||
[0, 0, 0, 1],
|
||||
]
|
||||
# Frame orientation is aligned with base; origin is at table center; waypoints control gripper flange pose
|
||||
way_points_num: 3
|
||||
way_points_trans:
|
||||
# min: [-0.312, -0.106, 0.174]
|
||||
# max: [-0.042, 0.526, 0.594]
|
||||
min: [-0.202, -0.376, 0.134]
|
||||
max: [ 0.302, 0.376, 0.264]
|
||||
way_points_ori:
|
||||
[0., 1., 0., 0.]
|
||||
max_noise_deg: 180
|
||||
@@ -0,0 +1,216 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_clean_arena.yaml
|
||||
|
||||
neglect_collision_names: ["table"]
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "genie1"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/genie1.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# constrain_grasp_approach: True
|
||||
ignore_substring: ["material", "table"]
|
||||
use_batch: True
|
||||
collision_activation_distance: 0.05
|
||||
tcp_offset: 0.20
|
||||
|
||||
objects:
|
||||
-
|
||||
name: pick_object_left
|
||||
path: basic/store_the_eggs/omniobject3d-egg_p/omniobject3d-egg_098/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: omniobject3d-egg_p
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: False
|
||||
optimize_2d_layout: True
|
||||
-
|
||||
name: pick_object_right
|
||||
path: basic/store_the_eggs/omniobject3d-egg_p/omniobject3d-egg_098/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: omniobject3d-egg_p
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: False
|
||||
optimize_2d_layout: True
|
||||
|
||||
-
|
||||
name: gso_box
|
||||
path: basic/store_the_eggs/egg_placer3/098_egg_placer_000_orange/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: gso
|
||||
category: box
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 0.0]
|
||||
scale: [1.2, 1.2, 1.2]
|
||||
apply_randomization: False
|
||||
|
||||
regions:
|
||||
-
|
||||
object: pick_object_left
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.15, -0.18, 0.0],
|
||||
[0.15, -0.06, 0.0]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
-
|
||||
object: pick_object_right
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.15, -0.18, 0.0],
|
||||
[0.15, -0.06, 0.0]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
-
|
||||
object: gso_box
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, 0.14, 0.01],
|
||||
[0.05, 0.18, 0.01]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.81, -0.85],
|
||||
[0.025, -0.81, -0.73]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_left
|
||||
translation: [-0.01, -0.07, 0.08]
|
||||
orientation: [0.191, 0.981, 0.003, 0.017]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405_v2.yaml
|
||||
|
||||
parent: "${tasks.0.robots.0.name}/gripper_l_base_link" # todo
|
||||
apply_randomization: False
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_right
|
||||
translation: [0.015, 0.094, 0.07]
|
||||
orientation: [0.0, 0.0, 0.974, 0.225]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405_v2.yaml
|
||||
parent: "${tasks.0.robots.0.name}/gripper_r_base_link"
|
||||
apply_randomization: False
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.05, -0.05, -0.0]
|
||||
orientation: [0.0, 0.697, 0.0128, -0.717]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "${tasks.0.robots.0.name}/head_link2"
|
||||
|
||||
data:
|
||||
task_dir: "store_the_eggs/lr/098_egg_placer_000_orange"
|
||||
language_instruction: "Pick up the eggs with the left arm and right arm then place it in the egg carton."
|
||||
detailed_language_instruction: "Pick up the eggs with the left robotic arm and right robotic arm then place it in the egg carton."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 800
|
||||
|
||||
skills:
|
||||
-
|
||||
genie1:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: pick
|
||||
objects: [pick_object_left]
|
||||
filter_x_dir: ["backward", 135]
|
||||
filter_y_dir: ["downward", 120]
|
||||
filter_z_dir: ["forward", 135, 45]
|
||||
pre_grasp_offset: 0.08
|
||||
gripper_change_steps: 20
|
||||
process_valid: True
|
||||
lift_th: 0.0
|
||||
post_grasp_offset_min: 0.0
|
||||
post_grasp_offset_max: 0.0
|
||||
return_to_pregrasp: True
|
||||
|
||||
-
|
||||
name: place
|
||||
objects: [pick_object_left, gso_box]
|
||||
position_constraint: object
|
||||
filter_x_dir: ["backward", 110]
|
||||
filter_y_dir: ["downward", 120]
|
||||
filter_z_dir: ["forward", 70]
|
||||
x_ratio_range: [0.48, 0.52]
|
||||
y_ratio_range: [0.2, 0.3]
|
||||
success_mode: xybbox
|
||||
pre_place_z_offset: 0.03
|
||||
place_z_offset: 0.03
|
||||
gripper_change_steps: 20
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: pick
|
||||
objects: [pick_object_right]
|
||||
filter_x_dir: ["forward", 45]
|
||||
filter_y_dir: ["downward", 120]
|
||||
filter_z_dir: ["forward", 135, 45]
|
||||
pre_grasp_offset: 0.08
|
||||
gripper_change_steps: 20
|
||||
process_valid: True
|
||||
lift_th: 0.0
|
||||
post_grasp_offset_min: 0.0
|
||||
post_grasp_offset_max: 0.0
|
||||
return_to_pregrasp: True
|
||||
-
|
||||
name: place
|
||||
objects: [pick_object_right, gso_box]
|
||||
position_constraint: object
|
||||
filter_x_dir: ["forward", 70]
|
||||
filter_y_dir: ["downward", 120]
|
||||
filter_z_dir: ["forward", 70]
|
||||
x_ratio_range: [0.75, 0.85]
|
||||
y_ratio_range: [0.15, 0.35]
|
||||
success_mode: xybbox
|
||||
pre_place_z_offset: 0.03
|
||||
place_z_offset: 0.03
|
||||
gripper_change_steps: 20
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
@@ -0,0 +1,290 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
neglect_collision_names: ["tray"]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
ignore_substring: ["material", "table", "tray"]
|
||||
objects:
|
||||
-
|
||||
name: plate
|
||||
path: basic/arrange_the_tableware/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# translation: [0.0, -0.25, 0.76]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
-
|
||||
name: plate_shelf
|
||||
path: basic/arrange_the_tableware/plate_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, -0.0, 0.0]
|
||||
euler: [90.0, 0.0, 90.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
-
|
||||
name: tray_0
|
||||
path: basic/arrange_the_tableware/tray/tray_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
scale: [1.6, 1.0, 1.3]
|
||||
filter_collision: True
|
||||
-
|
||||
name: tray_1
|
||||
path: basic/arrange_the_tableware/tray/tray_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
scale: [1.6, 1.0, 1.3]
|
||||
filter_collision: True
|
||||
-
|
||||
name: fork
|
||||
path: basic/arrange_the_tableware/fork/fork_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, -90.0, 0.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
-
|
||||
name: spoon
|
||||
path: basic/arrange_the_tableware/spoon/spoon_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, -90.0, 0.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
|
||||
regions:
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.75, -0.67],
|
||||
[0.025, -0.75, -0.67]
|
||||
]
|
||||
yaw_rotation: [-0.0, 0.0]
|
||||
-
|
||||
object: tray_1
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.35, -0.25, 0.005],
|
||||
[0.40, -0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: tray_0
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, -0.25, 0.005],
|
||||
[-0.35, -0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
|
||||
-
|
||||
object: plate_shelf
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.05, 0.005],
|
||||
[0.05, 0.05, 0.005]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: fork
|
||||
target: tray_0
|
||||
random_type: A_in_B_region_sampler
|
||||
random_config:
|
||||
x_bias: 0.0
|
||||
-
|
||||
object: spoon
|
||||
target: tray_1
|
||||
random_type: A_in_B_region_sampler
|
||||
random_config:
|
||||
x_bias: 0.0
|
||||
-
|
||||
object: plate
|
||||
target: plate_shelf
|
||||
random_type: A_in_B_region_sampler
|
||||
random_config:
|
||||
z_bias: -0.04
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
|
||||
data:
|
||||
task_dir: "arrange_the_tableware_part0"
|
||||
language_instruction: "Setup the table."
|
||||
detailed_language_instruction: "Pick up the plate from the shelf with right arm, then pick up the spoon from the tray with right arm and pick up the fork from the tray with left arm meanwhile, finally place the spoon on the right side of the plate and the fork on the left side of the plate."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 1300
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: pick
|
||||
objects: [plate]
|
||||
filter_z_dir: ["forward", 80]
|
||||
filter_x_dir: ["downward", 130]
|
||||
pre_grasp_offset: 0.05
|
||||
gripper_change_steps: 10
|
||||
ignore_substring: ["plate_shelf"]
|
||||
post_grasp_offset_min: 0.075
|
||||
post_grasp_offset_max: 0.125
|
||||
-
|
||||
name: place
|
||||
objects: [plate, table]
|
||||
place_direction: vertical
|
||||
filter_z_dir: ["forward", 10]
|
||||
filter_y_dir: ["upward", 60, 30]
|
||||
filter_x_dir: ["downward", 120, 150]
|
||||
position_constraint: object
|
||||
x_ratio_range: [0.5, 0.5]
|
||||
y_ratio_range: [0.12, 0.20]
|
||||
pre_place_z_offset: 0.15
|
||||
place_z_offset: 0.1
|
||||
post_place_vector: [-0.05, 0.0, 0.0]
|
||||
success_mode: xybbox
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: pick
|
||||
objects: [fork]
|
||||
filter_z_dir: ["forward", 80]
|
||||
filter_x_dir: ["downward", 130]
|
||||
pre_grasp_offset: 0.05
|
||||
gripper_change_steps: 10
|
||||
# ignore_substring: ["tray_0"]
|
||||
post_grasp_offset_min: 0.125
|
||||
post_grasp_offset_max: 0.175
|
||||
-
|
||||
name: place
|
||||
objects: [fork, plate]
|
||||
place_direction: vertical
|
||||
filter_z_dir: ["forward", 20]
|
||||
filter_x_dir: ["downward", 150]
|
||||
x_ratio_range: [-0.25, -0.15]
|
||||
y_ratio_range: [0.30, 0.70]
|
||||
pre_place_z_offset: 0.175
|
||||
place_z_offset: 0.125
|
||||
success_mode: left
|
||||
threshold: 0.01
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
right:
|
||||
-
|
||||
name: pick
|
||||
objects: [spoon]
|
||||
filter_z_dir: ["forward", 80]
|
||||
filter_x_dir: ["downward", 130]
|
||||
pre_grasp_offset: 0.05
|
||||
gripper_change_steps: 10
|
||||
# ignore_substring: ["tray_1"]
|
||||
post_grasp_offset_min: 0.125
|
||||
post_grasp_offset_max: 0.175
|
||||
-
|
||||
name: place
|
||||
objects: [spoon, plate]
|
||||
place_direction: vertical
|
||||
filter_z_dir: ["forward", 20]
|
||||
filter_x_dir: ["downward", 150]
|
||||
x_ratio_range: [1.15, 1.25]
|
||||
y_ratio_range: [0.30, 0.70]
|
||||
pre_place_z_offset: 0.175
|
||||
place_z_offset: 0.125
|
||||
success_mode: right
|
||||
threshold: 0.01
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
@@ -0,0 +1,290 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
neglect_collision_names: ["tray"]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
left_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
right_joint_home_std: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
||||
ignore_substring: ["material", "table", "tray"]
|
||||
objects:
|
||||
-
|
||||
name: plate
|
||||
path: basic/arrange_the_tableware/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# translation: [0.0, -0.25, 0.76]
|
||||
# euler: [90.0, 0.0, 0.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
-
|
||||
name: plate_shelf
|
||||
path: basic/arrange_the_tableware/plate_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, -0.0, 0.0]
|
||||
euler: [90.0, 0.0, 90.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
-
|
||||
name: tray_0
|
||||
path: basic/arrange_the_tableware/tray/tray_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
scale: [1.6, 1.0, 1.3]
|
||||
filter_collision: True
|
||||
-
|
||||
name: tray_1
|
||||
path: basic/arrange_the_tableware/tray/tray_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0]
|
||||
scale: [1.6, 1.0, 1.3]
|
||||
filter_collision: True
|
||||
-
|
||||
name: fork
|
||||
path: basic/arrange_the_tableware/fork/fork_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, -90.0, 0.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
-
|
||||
name: spoon
|
||||
path: basic/arrange_the_tableware/spoon/spoon_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: arcode
|
||||
category: plate
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, -90.0, 0.0]
|
||||
scale: [1.0, 1.0, 1.0]
|
||||
|
||||
regions:
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.025, -0.75, -0.67],
|
||||
[0.025, -0.75, -0.67]
|
||||
]
|
||||
yaw_rotation: [-0.0, 0.0]
|
||||
-
|
||||
object: tray_1
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.35, -0.25, 0.005],
|
||||
[0.40, -0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: tray_0
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.40, -0.25, 0.005],
|
||||
[-0.35, -0.15, 0.005]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
|
||||
-
|
||||
object: plate_shelf
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.05, 0.005],
|
||||
[0.05, 0.05, 0.005]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: spoon
|
||||
target: tray_0
|
||||
random_type: A_in_B_region_sampler
|
||||
random_config:
|
||||
x_bias: 0.0
|
||||
-
|
||||
object: fork
|
||||
target: tray_1
|
||||
random_type: A_in_B_region_sampler
|
||||
random_config:
|
||||
x_bias: 0.0
|
||||
-
|
||||
object: plate
|
||||
target: plate_shelf
|
||||
random_type: A_in_B_region_sampler
|
||||
random_config:
|
||||
z_bias: -0.04
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
|
||||
data:
|
||||
task_dir: "arrange_the_tableware_part1"
|
||||
language_instruction: "Setup the table."
|
||||
detailed_language_instruction: "Pick up the plate from the shelf with right arm, then pick up the fork from the tray with right arm and pick up the spoon from the tray with left arm meanwhile, finally place the fork on the right side of the plate and the spoon on the left side of the plate."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 1300
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
right:
|
||||
-
|
||||
name: pick
|
||||
objects: [plate]
|
||||
filter_z_dir: ["forward", 80]
|
||||
filter_x_dir: ["downward", 130]
|
||||
pre_grasp_offset: 0.05
|
||||
gripper_change_steps: 10
|
||||
ignore_substring: ["plate_shelf"]
|
||||
post_grasp_offset_min: 0.075
|
||||
post_grasp_offset_max: 0.125
|
||||
-
|
||||
name: place
|
||||
objects: [plate, table]
|
||||
place_direction: vertical
|
||||
filter_z_dir: ["forward", 10]
|
||||
filter_y_dir: ["upward", 60, 30]
|
||||
filter_x_dir: ["downward", 120, 150]
|
||||
position_constraint: object
|
||||
x_ratio_range: [0.5, 0.5]
|
||||
y_ratio_range: [0.12, 0.20]
|
||||
pre_place_z_offset: 0.15
|
||||
place_z_offset: 0.1
|
||||
post_place_vector: [-0.05, 0.0, 0.0]
|
||||
success_mode: xybbox
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: pick
|
||||
objects: [spoon]
|
||||
filter_z_dir: ["forward", 80]
|
||||
filter_x_dir: ["downward", 130]
|
||||
pre_grasp_offset: 0.05
|
||||
gripper_change_steps: 10
|
||||
# ignore_substring: ["tray_0"]
|
||||
post_grasp_offset_min: 0.125
|
||||
post_grasp_offset_max: 0.175
|
||||
-
|
||||
name: place
|
||||
objects: [spoon, plate]
|
||||
place_direction: vertical
|
||||
filter_z_dir: ["forward", 20]
|
||||
filter_x_dir: ["downward", 150]
|
||||
x_ratio_range: [-0.25, -0.15]
|
||||
y_ratio_range: [0.30, 0.70]
|
||||
pre_place_z_offset: 0.175
|
||||
place_z_offset: 0.125
|
||||
success_mode: left
|
||||
threshold: 0.01
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
right:
|
||||
-
|
||||
name: pick
|
||||
objects: [fork]
|
||||
filter_z_dir: ["forward", 80]
|
||||
filter_x_dir: ["downward", 130]
|
||||
pre_grasp_offset: 0.05
|
||||
gripper_change_steps: 10
|
||||
# ignore_substring: ["tray_1"]
|
||||
post_grasp_offset_min: 0.125
|
||||
post_grasp_offset_max: 0.175
|
||||
-
|
||||
name: place
|
||||
objects: [fork, plate]
|
||||
place_direction: vertical
|
||||
filter_z_dir: ["forward", 20]
|
||||
filter_x_dir: ["downward", 150]
|
||||
x_ratio_range: [1.15, 1.25]
|
||||
y_ratio_range: [0.30, 0.70]
|
||||
pre_place_z_offset: 0.175
|
||||
place_z_offset: 0.125
|
||||
success_mode: right
|
||||
threshold: 0.01
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: 1.0 # Open gripper
|
||||
@@ -0,0 +1,909 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/conveyor_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: False
|
||||
intensity_range: [2500, 5000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
ignore_substring: ["material", "Plane", "conveyor", "shelf", "bowl", "plate"]
|
||||
|
||||
neglect_collision_names: ["shelf", "bowl", "plate"]
|
||||
|
||||
objects:
|
||||
### priority food
|
||||
-
|
||||
name: bread_0
|
||||
path: long_horizon/conveyor_food/bread/bread_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_shelf_0
|
||||
path: long_horizon/conveyor_food/bread_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.125, 0.2]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_0
|
||||
path: long_horizon/conveyor_food/lettuce/lettuce_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, -90.0] # stable init pose
|
||||
scale: [1, 1.2, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_bowl_0
|
||||
path: long_horizon/conveyor_food/lettuce_bowl/bowl_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
### distractor food
|
||||
-
|
||||
name: bread_1
|
||||
path: long_horizon/conveyor_food/bread/bread_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_shelf_1
|
||||
path: long_horizon/conveyor_food/bread_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.125, 0.2]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_1
|
||||
path: long_horizon/conveyor_food/lettuce/lettuce_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, -90.0] # stable init pose
|
||||
scale: [1, 1.2, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_bowl_1
|
||||
path: long_horizon/conveyor_food/lettuce_bowl/bowl_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_2
|
||||
path: long_horizon/conveyor_food/bread/bread_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_shelf_2
|
||||
path: long_horizon/conveyor_food/bread_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.125, 0.2]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_2
|
||||
path: long_horizon/conveyor_food/lettuce/lettuce_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, -90.0] # stable init pose
|
||||
scale: [1, 1.2, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_bowl_2
|
||||
path: long_horizon/conveyor_food/lettuce_bowl/bowl_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_0
|
||||
path: long_horizon/conveyor_food/beef/beef_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_0
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_1
|
||||
path: long_horizon/conveyor_food/beef/beef_1/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_1
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_1/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_2
|
||||
path: long_horizon/conveyor_food/beef/beef_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_2
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_3
|
||||
path: long_horizon/conveyor_food/beef/beef_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_3
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_0
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_0
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_1
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_1
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_2
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_2
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_3
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_3
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
# -
|
||||
# name: distractor_4
|
||||
# path: long_horizon/conveyor_bg_objorange/omniobject3d-orange_001/Aligned_obj.usd
|
||||
# target_class: RigidObject
|
||||
# dataset: oo3d
|
||||
# category: bottle
|
||||
# prim_path_child: Aligned
|
||||
# translation: [0.0, 0.0, 0.0]
|
||||
# euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
# scale: [0.001, 0.001, 0.001]
|
||||
# apply_randomization: True
|
||||
# orientation_mode: keep
|
||||
# gap: False
|
||||
-
|
||||
name: plate_4
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
# -
|
||||
# name: distractor_5
|
||||
# path: long_horizon/conveyor_bg_objpear/omniobject3d-pear_007/Aligned_obj.usd
|
||||
# target_class: RigidObject
|
||||
# dataset: oo3d
|
||||
# category: bottle
|
||||
# prim_path_child: Aligned
|
||||
# translation: [0.0, 0.0, 0.0]
|
||||
# euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
# scale: [0.001, 0.001, 0.001]
|
||||
# apply_randomization: True
|
||||
# orientation_mode: keep
|
||||
# gap: False
|
||||
-
|
||||
name: plate_5
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
# -
|
||||
# name: distractor_6
|
||||
# path: long_horizon/conveyor_bg_objorange/omniobject3d-orange_001/Aligned_obj.usd
|
||||
# target_class: RigidObject
|
||||
# dataset: oo3d
|
||||
# category: bottle
|
||||
# prim_path_child: Aligned
|
||||
# translation: [0.0, 0.0, 0.0]
|
||||
# euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
# scale: [0.001, 0.001, 0.001]
|
||||
# apply_randomization: True
|
||||
# orientation_mode: keep
|
||||
# gap: False
|
||||
-
|
||||
name: plate_6
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
# -
|
||||
# name: distractor_7
|
||||
# path: long_horizon/conveyor_bg_objorange/omniobject3d-orange_001/Aligned_obj.usd
|
||||
# target_class: RigidObject
|
||||
# dataset: oo3d
|
||||
# category: bottle
|
||||
# prim_path_child: Aligned
|
||||
# translation: [0.0, 0.0, 0.0]
|
||||
# euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
# scale: [0.001, 0.001, 0.001]
|
||||
# apply_randomization: True
|
||||
# orientation_mode: keep
|
||||
# gap: False
|
||||
-
|
||||
name: plate_7
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
|
||||
regions:
|
||||
-
|
||||
object: bread_shelf_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 2, 4] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: bread_0
|
||||
target: conveyor
|
||||
container: bread_shelf_0
|
||||
z_init: 0.06
|
||||
-
|
||||
object: lettuce_bowl_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [1, 3, 5] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: lettuce_0
|
||||
target: conveyor
|
||||
container: lettuce_bowl_0
|
||||
z_init: 0.06
|
||||
### distractor food
|
||||
-
|
||||
object: bread_shelf_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6, -7, -8, -9] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: bread_1
|
||||
target: conveyor
|
||||
container: bread_shelf_1
|
||||
z_init: 0.06
|
||||
-
|
||||
object: lettuce_bowl_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6, -7, -8] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: lettuce_1
|
||||
target: conveyor
|
||||
container: lettuce_bowl_1
|
||||
z_init: 0.06
|
||||
-
|
||||
object: bread_shelf_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6, -7] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: bread_2
|
||||
target: conveyor
|
||||
container: bread_shelf_2
|
||||
z_init: 0.06
|
||||
-
|
||||
object: lettuce_bowl_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: lettuce_2
|
||||
target: conveyor
|
||||
container: lettuce_bowl_2
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: beef_0
|
||||
target: conveyor
|
||||
container: beef_shelf_0
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: beef_1
|
||||
target: conveyor
|
||||
container: beef_shelf_1
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: beef_2
|
||||
target: conveyor
|
||||
container: beef_shelf_2
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_3
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: beef_3
|
||||
target: conveyor
|
||||
container: beef_shelf_3
|
||||
z_init: 0.06
|
||||
-
|
||||
object: plate_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: distractor_0
|
||||
target: conveyor
|
||||
container: plate_0
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: distractor_1
|
||||
target: conveyor
|
||||
container: plate_1
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_2
|
||||
target: conveyor
|
||||
container: plate_2
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_3
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_3
|
||||
target: conveyor
|
||||
container: plate_3
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_4
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
# -
|
||||
# object: distractor_4
|
||||
# target: conveyor
|
||||
# container: plate_4
|
||||
# z_init: 0.05
|
||||
-
|
||||
object: plate_5
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
# -
|
||||
# object: distractor_5
|
||||
# target: conveyor
|
||||
# container: plate_5
|
||||
# z_init: 0.05
|
||||
-
|
||||
object: plate_6
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
# -
|
||||
# object: distractor_6
|
||||
# target: conveyor
|
||||
# container: plate_6
|
||||
# z_init: 0.05
|
||||
-
|
||||
object: plate_7
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
# -
|
||||
# object: distractor_7
|
||||
# target: conveyor
|
||||
# container: plate_7
|
||||
# z_init: 0.05
|
||||
### robot
|
||||
-
|
||||
object: lift2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.5, -0.82, -0.78],
|
||||
[0.5, -0.82, -0.78]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
random_region_list:
|
||||
# This side
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.5, -0.15, 0.0],
|
||||
[-1.4, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.2, -0.15, 0.0],
|
||||
[-1.1, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.9, -0.15, 0.0],
|
||||
[-0.8, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.6, -0.15, 0.0],
|
||||
[-0.5, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.3, -0.15, 0.0],
|
||||
[-0.2, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.15, 0.0],
|
||||
[0.1, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.3, -0.15, 0.0],
|
||||
[0.4, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.6, -0.15, 0.0],
|
||||
[0.7, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.9, -0.15, 0.0],
|
||||
[1.0, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[1.2, -0.15, 0.0],
|
||||
[1.3, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
# Other side
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.5, 0.15, 0.0],
|
||||
[-1.4, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.2, 0.15, 0.0],
|
||||
[-1.1, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.9, 0.15, 0.0],
|
||||
[-0.8, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.6, 0.15, 0.0],
|
||||
[-0.5, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.3, 0.15, 0.0],
|
||||
[-0.2, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, 0.15, 0.0],
|
||||
[0.1, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.3, 0.15, 0.0],
|
||||
[0.4, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.6, 0.15, 0.0],
|
||||
[0.7, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.9, 0.15, 0.0],
|
||||
[1.0, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[1.2, 0.15, 0.0],
|
||||
[1.3, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
|
||||
data:
|
||||
task_dir: "beef_sandwich_lift2"
|
||||
language_instruction: "Pick up the bread with left arm, pick up the lettuce with right arm"
|
||||
detailed_language_instruction: "Grasp and lift the bread with the left robotic arm, grasp and lift the lettuce with the left robotic arm"
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 3000
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
- # skill_sequences[0]
|
||||
left:
|
||||
- # skill[0]
|
||||
name: dynamicpick
|
||||
objects: [bread_0]
|
||||
filter_z_dir: ["forward", 90]
|
||||
filter_x_dir: ["downward", 150]
|
||||
pick_range: [0.12, 0.2]
|
||||
time_bias: 1.5
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: -1.0 # Close gripper
|
||||
right:
|
||||
- # skill[0]
|
||||
name: dynamicpick
|
||||
objects: [lettuce_0]
|
||||
filter_z_dir: ["forward", 90]
|
||||
filter_x_dir: ["downward", 150]
|
||||
pick_range: [-0.15, -0.05]
|
||||
time_bias: 1
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: -1.0 # Close gripper
|
||||
@@ -0,0 +1,912 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/conveyor_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [2500, 5000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
# use_batch: True
|
||||
|
||||
neglect_collision_names: ["shelf", "bowl", "plate"]
|
||||
|
||||
objects:
|
||||
### priority food
|
||||
-
|
||||
name: bread_0
|
||||
path: long_horizon/conveyor_food/bread/bread_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_shelf_0
|
||||
path: long_horizon/conveyor_food/bread_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.125, 0.2]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: cheese_0
|
||||
path: long_horizon/conveyor_food/cheese/cheese_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [10.0, 0.0, 90.0] # stable init pose
|
||||
scale: [0.8, 1, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: cheese_plate_0
|
||||
path: long_horizon/conveyor_food/cheese_plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.175, 0.25, 0.175]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
### distractor food
|
||||
-
|
||||
name: bread_1
|
||||
path: long_horizon/conveyor_food/bread/bread_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_shelf_1
|
||||
path: long_horizon/conveyor_food/bread_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.125, 0.2]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: cheese_1
|
||||
path: long_horizon/conveyor_food/cheese/cheese_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [10.0, 0.0, 90.0] # stable init pose
|
||||
scale: [0.8, 1, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: cheese_plate_1
|
||||
path: long_horizon/conveyor_food/cheese_plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.175, 0.25, 0.175]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_2
|
||||
path: long_horizon/conveyor_food/bread/bread_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, 90.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: bread_shelf_2
|
||||
path: long_horizon/conveyor_food/bread_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.125, 0.2]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_2
|
||||
path: long_horizon/conveyor_food/lettuce/lettuce_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [0.0, 0.0, -90.0] # stable init pose
|
||||
scale: [1, 1.2, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: lettuce_bowl_2
|
||||
path: long_horizon/conveyor_food/lettuce_bowl/bowl_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_0
|
||||
path: long_horizon/conveyor_food/beef/beef_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_0
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_1
|
||||
path: long_horizon/conveyor_food/beef/beef_1/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_1
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_1/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_2
|
||||
path: long_horizon/conveyor_food/beef/beef_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_2
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_3
|
||||
path: long_horizon/conveyor_food/beef/beef_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [-90.0, 90.0, 180.0] # stable init pose
|
||||
scale: [1, 1.3, 1]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: beef_shelf_3
|
||||
path: long_horizon/conveyor_food/beef_shelf/shelf_2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.2, 0.17, 0.17]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_0
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_0
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_1
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_1
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_2
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_2
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_3
|
||||
path: long_horizon/conveyor_food/distractor/fruits/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.8, 0.8, 0.8]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_3
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_4
|
||||
path: long_horizon/conveyor_bg_obj/orange/omniobject3d-orange_001/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_4
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_5
|
||||
path: long_horizon/conveyor_bg_obj/pear/omniobject3d-pear_007/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_5
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_6
|
||||
path: long_horizon/conveyor_bg_obj/orange/omniobject3d-orange_001/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_6
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: distractor_7
|
||||
path: long_horizon/conveyor_bg_obj/orange/omniobject3d-orange_001/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.001, 0.001, 0.001]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
-
|
||||
name: plate_7
|
||||
path: long_horizon/conveyor_food/plate/plate_0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: bottle
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90.0, 0.0, 0.0] # stable init pose
|
||||
scale: [0.15, 0.15, 0.15]
|
||||
apply_randomization: True
|
||||
orientation_mode: keep
|
||||
gap: False
|
||||
|
||||
regions:
|
||||
#### container first, object second
|
||||
### priority food
|
||||
## left hand first, right hand second
|
||||
-
|
||||
object: bread_shelf_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 2, 4] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: bread_0
|
||||
target: conveyor
|
||||
container: bread_shelf_0
|
||||
z_init: 0.06
|
||||
-
|
||||
object: cheese_plate_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [1, 3, 5] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: cheese_0
|
||||
target: conveyor
|
||||
container: cheese_plate_0
|
||||
z_init: 0.06
|
||||
### distractor food
|
||||
-
|
||||
object: bread_shelf_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6, -7, -8, -9] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: bread_1
|
||||
target: conveyor
|
||||
container: bread_shelf_1
|
||||
z_init: 0.06
|
||||
-
|
||||
object: cheese_plate_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6, -7, -8] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: cheese_1
|
||||
target: conveyor
|
||||
container: cheese_plate_1
|
||||
z_init: 0.06
|
||||
-
|
||||
object: bread_shelf_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6, -7] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: bread_2
|
||||
target: conveyor
|
||||
container: bread_shelf_2
|
||||
z_init: 0.06
|
||||
-
|
||||
object: lettuce_bowl_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [-1, -2, -3, -4, -5, -6] # randomly choose among these indices in random_region_list
|
||||
-
|
||||
object: lettuce_2
|
||||
target: conveyor
|
||||
container: lettuce_bowl_2
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: beef_0
|
||||
target: conveyor
|
||||
container: beef_shelf_0
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: beef_1
|
||||
target: conveyor
|
||||
container: beef_shelf_1
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: beef_2
|
||||
target: conveyor
|
||||
container: beef_shelf_2
|
||||
z_init: 0.06
|
||||
-
|
||||
object: beef_shelf_3
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: beef_3
|
||||
target: conveyor
|
||||
container: beef_shelf_3
|
||||
z_init: 0.06
|
||||
-
|
||||
object: plate_0
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: distractor_0
|
||||
target: conveyor
|
||||
container: plate_0
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_1
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: [0, 1, 2, 3, 4, 5]
|
||||
-
|
||||
object: distractor_1
|
||||
target: conveyor
|
||||
container: plate_1
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_2
|
||||
target: conveyor
|
||||
container: plate_2
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_3
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_3
|
||||
target: conveyor
|
||||
container: plate_3
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_4
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_4
|
||||
target: conveyor
|
||||
container: plate_4
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_5
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_5
|
||||
target: conveyor
|
||||
container: plate_5
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_6
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_6
|
||||
target: conveyor
|
||||
container: plate_6
|
||||
z_init: 0.05
|
||||
-
|
||||
object: plate_7
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
priority: False
|
||||
-
|
||||
object: distractor_7
|
||||
target: conveyor
|
||||
container: plate_7
|
||||
z_init: 0.05
|
||||
### robot
|
||||
-
|
||||
object: lift2
|
||||
target: conveyor
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.5, -0.82, -0.78],
|
||||
[0.5, -0.82, -0.78]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
|
||||
random_region_list:
|
||||
# This side
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.5, -0.15, 0.0],
|
||||
[-1.4, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.2, -0.15, 0.0],
|
||||
[-1.1, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.9, -0.15, 0.0],
|
||||
[-0.8, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.6, -0.15, 0.0],
|
||||
[-0.5, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.3, -0.15, 0.0],
|
||||
[-0.2, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.15, 0.0],
|
||||
[0.1, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.3, -0.15, 0.0],
|
||||
[0.4, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.6, -0.15, 0.0],
|
||||
[0.7, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.9, -0.15, 0.0],
|
||||
[1.0, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[1.2, -0.15, 0.0],
|
||||
[1.3, -0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
# Other side
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.5, 0.15, 0.0],
|
||||
[-1.4, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-1.2, 0.15, 0.0],
|
||||
[-1.1, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.9, 0.15, 0.0],
|
||||
[-0.8, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.6, 0.15, 0.0],
|
||||
[-0.5, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.3, 0.15, 0.0],
|
||||
[-0.2, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, 0.15, 0.0],
|
||||
[0.1, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.3, 0.15, 0.0],
|
||||
[0.4, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.6, 0.15, 0.0],
|
||||
[0.7, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.9, 0.15, 0.0],
|
||||
[1.0, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
-
|
||||
random_config:
|
||||
pos_range: [
|
||||
[1.2, 0.15, 0.0],
|
||||
[1.3, 0.25, 0.0]
|
||||
]
|
||||
yaw_rotation: [-5.0, 5.0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: lift2_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "lift2/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: lift2_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "lift2/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
|
||||
data:
|
||||
task_dir: "ham_sandwich_lift2"
|
||||
language_instruction: "Pick up the bread with left arm, pick up the cheese with right arm"
|
||||
detailed_language_instruction: "Grasp and lift the bread with the left robotic arm, grasp and lift the cheese with the left robotic arm"
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 3000
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
- # skill_sequences[0]
|
||||
left:
|
||||
- # skill[0]
|
||||
name: dynamicpick
|
||||
objects: [bread_0]
|
||||
filter_z_dir: ["forward", 90]
|
||||
filter_x_dir: ["downward", 150]
|
||||
pick_range: [0.12, 0.2]
|
||||
time_bias: 1.5
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: -1.0 # Close gripper
|
||||
right:
|
||||
- # skill[0]
|
||||
name: dynamicpick
|
||||
objects: [cheese_0]
|
||||
filter_z_dir: ["forward", 90]
|
||||
filter_x_dir: ["downward", 150]
|
||||
pick_range: [-0.15, -0.05]
|
||||
time_bias: 1
|
||||
-
|
||||
name: heuristic__skill
|
||||
mode: home
|
||||
gripper_state: -1.0 # Close gripper
|
||||
@@ -0,0 +1,164 @@
|
||||
tasks:
|
||||
-
|
||||
name: banana_base_task # task name
|
||||
asset_root: workflows/simbox/assets
|
||||
task: BananaBaseTask # !! where you specify TASK class
|
||||
task_id: 0
|
||||
|
||||
offset: null
|
||||
render: True
|
||||
|
||||
|
||||
# Arena configuration
|
||||
arena_file: workflows/simbox/core/configs/arenas/pick_randomized_arena.yaml
|
||||
# arena_file: workflows/simbox/core/configs/arenas/scene_arena.yaml
|
||||
|
||||
env_map:
|
||||
envmap_lib: envmap_lib
|
||||
apply_randomization: True
|
||||
intensity_range: [4000, 7000]
|
||||
rotation_range: [0, 180]
|
||||
|
||||
neglect_collision_names: ["table"]
|
||||
|
||||
robots:
|
||||
-
|
||||
name: "lift2"
|
||||
robot_config_file: workflows/simbox/core/configs/robots/lift2.yaml
|
||||
euler: [0.0, 0.0, 90.0]
|
||||
left_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
right_joint_home: [-0.00059017, 0.00374724, 0.00516233, 0.00025332, -0.00105036, -0.00132419]
|
||||
left_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
right_joint_home_std: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
|
||||
ignore_substring: ["material", "Plane", "table", "conveyor", "scene", "oo3d_object2"]
|
||||
tcp_offset: 0.135
|
||||
|
||||
objects:
|
||||
-
|
||||
name: oo3d_object1
|
||||
path: basic/hang_the_cup_on_rack/cup/cup2/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: gift
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90, 0.0, 0.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
-
|
||||
name: oo3d_object2
|
||||
path: basic/hang_the_cup_on_rack/cup_shelf/cup_shelf0/Aligned_obj.usd
|
||||
target_class: RigidObject
|
||||
dataset: oo3d
|
||||
category: gift
|
||||
prim_path_child: Aligned
|
||||
translation: [0.0, 0.0, 0.0]
|
||||
euler: [90, 0.0, 0.0] # stable init pose
|
||||
scale: [1, 1, 1]
|
||||
|
||||
regions:
|
||||
# Order is important!
|
||||
-
|
||||
object: ${tasks.0.robots.0.name}
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[0.0, -0.86, -0.725],
|
||||
[0.0, -0.86, -0.725]
|
||||
]
|
||||
yaw_rotation: [0.0, 0.0]
|
||||
-
|
||||
object: oo3d_object1
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.35, -0.25, 0.0],
|
||||
[-0.2, -0.1, 0.0]
|
||||
]
|
||||
yaw_rotation: [0, 0]
|
||||
-
|
||||
object: oo3d_object2
|
||||
target: table
|
||||
random_type: A_on_B_region_sampler
|
||||
random_config:
|
||||
pos_range: [
|
||||
[-0.05, -0.25, 0.0],
|
||||
[0.2, -0.2, 0.0]
|
||||
]
|
||||
yaw_rotation: [0,0]
|
||||
|
||||
cameras:
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_left
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/fl/link6" # todo
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_hand_right
|
||||
translation: [0.07, 0.01, 0.08]
|
||||
orientation: [0.62, 0.33, -0.33, -0.62]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d405.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/fr/link6"
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.02
|
||||
max_orientation_noise: 2.5
|
||||
-
|
||||
name: ${tasks.0.robots.0.name}_head
|
||||
translation: [0.1, 0.02, 0.03]
|
||||
orientation: [0.6602, 0.2534, -0.2534, -0.6602]
|
||||
camera_axes: usd
|
||||
camera_file: workflows/simbox/core/configs/cameras/realsense_d455_v3.yaml
|
||||
parent: "${tasks.0.robots.0.name}/lift2/lift2/h_link6" # todo: robot base frame
|
||||
apply_randomization: True
|
||||
max_translation_noise: 0.03
|
||||
max_orientation_noise: 5.0
|
||||
|
||||
data:
|
||||
task_dir: "hang_the_cup_on_rack_part0"
|
||||
language_instruction: "Place cup on the shelf with left arm."
|
||||
detailed_language_instruction: "Place cup on the shelf with the left robotic arm."
|
||||
collect_info: ""
|
||||
version: "v3.0, head camerea 1280x720, wrist 640x480, y 45 degrees"
|
||||
update: True
|
||||
max_episode_length: 1000
|
||||
|
||||
skills:
|
||||
-
|
||||
lift2:
|
||||
-
|
||||
left:
|
||||
-
|
||||
name: pick
|
||||
objects: [oo3d_object1]
|
||||
pre_grasp_offset: 0.05
|
||||
filter_z_dir: ["upward", 60]
|
||||
filter_x_dir: ["forward", 30]
|
||||
pre_grasp_hold_vec_weight: [1,1,1,0,0,0]
|
||||
post_grasp_offset_min: 0.10
|
||||
post_grasp_offset_max: 0.10
|
||||
-
|
||||
name: place
|
||||
objects: [oo3d_object1, oo3d_object2]
|
||||
place_direction: horizontal
|
||||
filter_z_dir: ["upward", 30]
|
||||
align_pick_obj_axis: [1, 0, 0]
|
||||
align_place_obj_axis: [1, 0, 0]
|
||||
offset_place_obj_axis: [0,0,-1]
|
||||
align_obj_tol: 10 # degree
|
||||
pre_place_align: -0.15
|
||||
place_align: -0.07
|
||||
pre_place_offset: 0.027
|
||||
place_offset: 0.027
|
||||
position_constraint: object
|
||||
x_ratio_range: [0.5,0.5]
|
||||
y_ratio_range: [0.5,0.5]
|
||||
z_ratio_range: [0.72,0.72]
|
||||
success_th: 0.1
|
||||
success_mode: cup
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user