scene_synthesizer.procedural_assets.CubbyShelfAsset
- class scene_synthesizer.procedural_assets.CubbyShelfAsset(*args, **kwargs)
A shelf composed of individual cubbies. In contrast to CabinetAsset, each cubby has a separate left, right, top, bottom, and back wall geometry. This allows e.g. to render segmentation maps that highlight individual cubbies based on their geometry (this wouldn’t be possible with CabinetAsset). In contrast to CabinetAsset, the resulting shelf will have more geometries/boxes.
- Parameters:
width (float) – Width of the shelf or None. If None compartment_widths are used as absolute sizes otherwise relative ones.
depth (float) – Depth of the shelf (excluding possible handles).
height (float) – Height of the shelf or None. If None compartment_heights are used as absolute sizes otherwise relative ones.
compartment_mask (list[list[float]] or np.ndarray) – A 2D matrix of type int which represents the segmentation map of the shelf layout. Same numbers indicate same compartment.
compartment_types (list[str]) – A list of strings of [“none”, “open”, “closed”, “door_left”, “door_right”, “door_top”, “door_bottom”, “drawer”] depending on the type of the i-th compartment (i being the entry in the compartment_mask).
compartment_widths (list[float], optional) – List of widths of compartment columns. Must have as many elements as compartment_mask has columns. If None all columns have equal width that sum to width. Is considered relative if width is defined. Defaults to None.
compartment_heights (list[float], optional) – List of heights of compartment rows. Must have as many elements as compartment_mask has rows. If None all rows have equal heights that sum to height. Is considered relative if height is defined. Defaults to None.
wall_thickness (float, optional) – Thickness of walls of the cubbies. Defaults to 0.01.
handle_width (float, optional) – Defaults to 0.1682.
handle_height (float, optional) – Defaults to 0.038.
handle_depth (float, optional) – Defaults to 0.024.
handle_offset (tupe(float, float), optional) – Defaults to None. x-z offset for handle placement location.
handle_shape_args (dict, optional) – Arguments for handles. If None, will create handle made out of boxes. Defaults to None.
door_shape_args (dict, optional) – Arguments for procedural door moldings. If None, will create box-shaped door. Defaults to None.
**kwargs – Keyword argument passed onto the URDFAsset constructor.
- Raises:
ValueError – If neither width nor compartment_widths is defined.
ValueError – If neither height nor compartment_heights is defined.
ValueError – If compartment type is unknown.
- static create_cubby_URDF_geometries(width, depth, height, thickness, closed=False, name_prefix='')
- static transform_geometries(geoms, transform)
- static create_yourdfpy_model(width, depth, height, compartment_mask, compartment_types, compartment_widths, compartment_heights, wall_thickness, handle_width, handle_depth, handle_height, handle_offset, handle_shape_args, door_shape_args)
- as_trimesh_scene(namespace='object', use_collision_geometry=True)
- compute_stable_poses(convexify=False, center_mass=None, sigma=0.0, n_samples=1, threshold=0.0, tolerance_zero_extent=1e-6, use_collision_geometry=True)
Wrapper for trimesh.poses.compute_stable_poses function.
- Parameters:
convexify (bool, optional) – Whether to use the convex hull of the object.
center_mass ((3,) float, optional) – The object center of mass. If None, this method assumes uniform density and watertightness and computes a center of mass explicitly. Defaults to None.
sigma (float, optional) – The covariance for the multivariate gaussian used to sample center of mass locations. Defaults to 0.0.
n_samples (int, optional) – The number of samples of the center of mass location. Defaults to 1.
threshold (float, optional) – The probability value at which to threshold returned stable poses. Defaults to 0.0.
tolerance_zero_extent (float, optional) – The threshold for considering a dimension to have zero length. In this case, trimesh.poses.compute_stable_poses gets caught in an infinite loop. We avoid this by specifying the stable poses to be along zero-length dimensions. Defaults to 1e-6.
use_collision_geometry (bool, optional) – Whether to use the collision geometry or visual geometry to calculate stable poses. Defaults to True.
- Returns:
The homogeneous matrices that transform the object to rest in a stable pose. probs ((n,) float): Probability in (0, 1) for each pose
- Return type:
transforms ((n, 4, 4) float)
- get_bounds(query=None, frame=None, use_collision_geometry=None)
Return bounds of asset defined through nodes selected by query.
- Parameters:
query (list[str] or str) – A list, string, or regular expression referring to a subset of all geometry of this asset. None means entire asset. Defaults to None.
frame (str, optional) – The reference frame to use. None means asset’s base frame is used. Defaults to None.
use_collision_geometry (bool, optional) – Whether to use collision geometry, visual geometry or both (if None). Defaults to None.
- Returns:
A 2x3 matrix of minimum and maximum coordinates for each dimension.
- Return type:
np.ndarray
- get_center_mass(query=None, frame=None, use_collision_geometry=None)
Return center of mass for subscene defined through nodes selected by query.
- Parameters:
query (list[str] or str) – A list, string, or regular expression referring to a subset of all geometry of this asset. None means entire asset. Defaults to None.
frame (str, optional) – The reference frame to use. None means asset’s base frame is used. Defaults to None.
use_collision_geometry (bool, optional) – Whether to use collision geometry, visual geometry or both (if None). Defaults to None.
- Returns:
A 3-vector describing the center of mass of the queried subscene.
- Return type:
np.ndarray
- get_centroid(query=None, frame=None, use_collision_geometry=None)
Return centroid for asset defined through nodes selected by query.
- Parameters:
query (list[str] or str) – A list, string, or regular expression referring to a subset of all geometry of this asset. None means entire asset. Defaults to None.
frame (str, optional) – The reference frame to use. None means asset’s base frame is used. Defaults to None.
use_collision_geometry (bool, optional) – Whether to use collision geometry, visual geometry or both (if None). Defaults to None.
- Returns:
A 3-vector describing the centroid of the queried subscene.
- Return type:
np.ndarray
- get_extents(query=None, frame=None, use_collision_geometry=None)
Return extents of asset defined through nodes selected by query.
- Parameters:
query (list[str] or str) – A list, string, or regular expression referring to a subset of all geometry of this asset. None means entire asset. Defaults to None.
frame (str, optional) – The reference frame to use. None means asset’s base frame is used. Defaults to None.
use_collision_geometry (bool, optional) – Whether to use collision geometry, visual geometry or both (if None). Defaults to None.
- Returns:
A 3-vector describing the extents of each dimension.
- Return type:
np.ndarray
- get_reference_frame(xyz, query=None, frame=None, use_collision_geometry=None)
Return reference frame for subscene defined through nodes selected by query.
- Parameters:
xyz (tuple[str]) – A 3-tuple/list of [‘top’, ‘center’, ‘bottom’, ‘com’, ‘centroid’]
query (list[str] or str) – A list, string, or regular expression referring to a subset of all geometry of this asset. None means entire asset. Defaults to None.
frame (str, optional) – The reference frame to use. None means scene’s base frame is used. Defaults to None.
use_collision_geometry (bool, optional) – Whether to use collision geometry, visual geometry or both (if None). Defaults to None.
- Raises:
ValueError – Unknown reference string.
- Returns:
A 4x4 homogenous matrix.
- Return type:
np.ndarray
- mesh(use_collision_geometry=False)
Return a trimesh.Trimesh object of the asset.
- Parameters:
use_collision_geometry (bool, optional) – Whether to use the collision or visual geometry or both. Defaults to False.
- Returns:
A trimesh mesh.
- Return type:
trimesh.Trimesh
- sample_stable_pose(seed=None, **kwargs)
Return a stable pose according to their likelihood.
- Returns:
homogeneous 4x4 matrix seed (int, numpy.random._generator.Generator, optional): A seed or random number generator. Defaults to None which creates a new default random number generator.
- Return type:
np.ndarray
- scene(obj_id='object', **kwargs)
Return a scene consisting of only this asset.
- Parameters:
obj_id (str, optional) – Name of object in scene. Defaults to ‘object’.
**kwargs – Additional keyword arguments that will be piped to the add_object method.
- Returns:
A scene
- Return type:
- show(use_collision_geometry=False, layers=None)
Display the asset via the trimesh scene viewer.
- Parameters:
use_collision_geometry (bool, optional) – Which geometry to show: visual or collision geometry. Defaults to False.
layers (list[str], optional) – Filter to show only certain layers, e.g. ‘visual’ or ‘collision’. Defaults to None, showing everything.