init commit

This commit is contained in:
zyhe
2026-03-16 11:44:10 +00:00
commit 94384a93c9
552 changed files with 363038 additions and 0 deletions

View 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).

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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]

View 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

View 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

View 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

View 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

View File

@@ -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

View 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

View 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

View 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

View 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

View File

@@ -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]

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1 @@
placeholder: 0 # todo

View 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]

View 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]

View 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]

View 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]

View 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]

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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