scene_synthesizer.procedural_assets.SafetySwitchAsset

class scene_synthesizer.procedural_assets.SafetySwitchAsset(*args, **kwargs)

A safety switch attached to a fuse box.

../_images/safety_switch_asset.png
Parameters:
  • fuse_box_width (float) – Width of fuse box.

  • fuse_box_depth (float) – Depth of fuse box.

  • fuse_box_height (float) – Height of fuse box.

  • lever_length (float) – Length of lever.

  • fuse_box_shape_args (dict, optional) – Shape argument for the fuse box. If None a box primitive will be used. See CabinetDoorAsset for details. Defaults to { “inner_depth_ratio”: 1.0, “outer_depth_ratio”: 0.95, “num_depth_sections”: 40, }.

  • lever_right_of_box (bool, optional) – Whether the lever is attached to the right or left of the fuse box. Defaults to True.

  • lever_width (float, optional) – Width of the lever (when shaped as a box - diameter in case of a cylindrical shape). If None will be one fifth of the length. Defaults to None.

  • lever_depth (float, optional) – Depth of the lever (when shaped as a box). If None will be one tenth of the length. Defaults to None.

  • lever (str, optional) – Shape of the lever. Either ‘box’ or ‘cylinder’. Defaults to ‘box’.

  • tip (str, optional) – Shape of the tip of the lever. Either ‘cylinder’, ‘sphere’, or None. Defaults to ‘cylinder’.

  • tip_size (float, optional) – Radius of the tip. If None lever_width will be used. Defaults to None.

  • tip_width (float, optional) – Width of the tip. Only used if tip == ‘cylinder’. If None will be the same as lever_depth. Defaults to None.

  • base (bool, optional) – If True will create a base shaped like a box in which the lever sits. Defaults to None.

  • base_extents (tuple[float], optional) – A 3-tuple representing the size of the base box. If None the extents will be based on the lever size. Defaults to None.

  • joint_limit_lower (float, optional) – Lower joint limits of the revolute switch joint in radians. Defaults to -0.7853981633974483 (-45deg).

  • joint_limit_upper (float, optional) – Upper joint limits of the revolute switch joint in radians. Defaults to 0.7853981633974483 (+45deg).

  • joint_limit_velocity (float, optional) – Joint velocity limit. Defaults to 100.0.

  • joint_limit_effort (float, optional) – Joint effort limit. Defaults to 1000.0.

  • **kwargs – Keyword argument passed onto the URDFAsset constructor.

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:

scene.Scene

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.