embodichain.lab.sim.motion.workspace.metrics#

Workspace evaluation metrics deriving from BaseMetric.

Built-in metrics: reachability, manipulability, and density.

Classes:

BaseMetric

Base class for workspace metrics.

DensityMetric

Density metric for workspace analysis.

ManipulabilityMetric

Manipulability metric for workspace analysis.

ReachabilityMetric

Reachability metric for workspace analysis.

class embodichain.lab.sim.motion.workspace.metrics.BaseMetric[source]#

Bases: ABC

Base class for workspace metrics.

All metrics should inherit from this class and implement the compute method.

Methods:

__init__([config])

Initialize the metric.

compute(workspace_points[, joint_configurations])

Compute the metric.

get_results()

Get computed metric results.

reset()

Reset metric results.

__init__(config=None)[source]#

Initialize the metric.

Parameters:

config (Any | None) – Configuration object for the metric.

abstract compute(workspace_points, joint_configurations=None, **kwargs)[source]#

Compute the metric.

Parameters:
  • workspace_points (ndarray) – Workspace points in Cartesian space, shape (N, 3).

  • joint_configurations (ndarray | None) – Joint configurations, shape (N, num_joints).

  • **kwargs – Additional arguments specific to the metric.

Return type:

Dict[str, Any]

Returns:

Dictionary containing metric results.

get_results()[source]#

Get computed metric results.

Return type:

Dict[str, Any]

Returns:

Dictionary containing metric results.

reset()[source]#

Reset metric results.

Return type:

None

class embodichain.lab.sim.motion.workspace.metrics.DensityMetric[source]#

Bases: BaseMetric

Density metric for workspace analysis.

Computes point density and workspace distribution statistics.

Methods:

__init__([config])

Initialize density metric.

compute(workspace_points[, joint_configurations])

Compute density metrics.

__init__(config=None)[source]#

Initialize density metric.

Parameters:

config (DensityConfig | None) – Density configuration.

compute(workspace_points, joint_configurations=None, **kwargs)[source]#

Compute density metrics.

Parameters:
  • workspace_points (ndarray) – Workspace points in Cartesian space, shape (N, 3).

  • joint_configurations (ndarray | None) – Joint configurations, shape (N, num_joints).

  • **kwargs – Additional arguments.

Returns:

  • mean_density: Average local density

  • std_density: Standard deviation

  • min_density: Minimum density

  • max_density: Maximum density

  • density_distribution: Histogram of density values (if enabled)

Return type:

Dictionary containing

class embodichain.lab.sim.motion.workspace.metrics.ManipulabilityMetric[source]#

Bases: BaseMetric

Manipulability metric for workspace analysis.

Computes dexterity and manipulability measures throughout the workspace. Note: Full implementation requires robot Jacobian computation.

Methods:

__init__([config])

Initialize manipulability metric.

compute(workspace_points[, ...])

Compute manipulability metrics.

__init__(config=None)[source]#

Initialize manipulability metric.

Parameters:

config (ManipulabilityConfig | None) – Manipulability configuration.

compute(workspace_points, joint_configurations=None, jacobians=None, **kwargs)[source]#

Compute manipulability metrics.

Parameters:
  • workspace_points (ndarray) – Workspace points in Cartesian space, shape (N, 3).

  • joint_configurations (ndarray | None) – Joint configurations, shape (N, num_joints).

  • jacobians (ndarray | None) – Precomputed Jacobian matrices, shape (N, 6, num_joints).

  • **kwargs – Additional arguments.

Returns:

  • mean_manipulability: Average manipulability index

  • std_manipulability: Standard deviation

  • min_manipulability: Minimum value

  • max_manipulability: Maximum value

  • mean_condition: Average condition number (if isotropy enabled)

Return type:

Dictionary containing

class embodichain.lab.sim.motion.workspace.metrics.ReachabilityMetric[source]#

Bases: BaseMetric

Reachability metric for workspace analysis.

Computes reachable workspace volume and coverage statistics.

Methods:

__init__([config])

Initialize reachability metric.

compute(workspace_points[, joint_configurations])

Compute reachability metrics.

__init__(config=None)[source]#

Initialize reachability metric.

Parameters:

config (ReachabilityConfig | None) – Reachability configuration.

compute(workspace_points, joint_configurations=None, **kwargs)[source]#

Compute reachability metrics.

Parameters:
  • workspace_points (ndarray) – Workspace points in Cartesian space, shape (N, 3).

  • joint_configurations (ndarray | None) – Joint configurations, shape (N, num_joints).

  • **kwargs – Additional arguments.

Returns:

  • volume: Estimated reachable volume (m³)

  • num_voxels: Number of occupied voxels

  • coverage: Coverage percentage relative to bounding box

  • bounding_box: Min and max bounds

  • centroid: Center of workspace

Return type:

Dictionary containing