embodichain.lab.sim.motion.workspace.metrics#
Workspace evaluation metrics deriving from BaseMetric.
Built-in metrics: reachability, manipulability, and density.
Classes:
Base class for workspace metrics. |
|
Density metric for workspace analysis. |
|
Manipulability metric for workspace analysis. |
|
Reachability metric for workspace analysis. |
- class embodichain.lab.sim.motion.workspace.metrics.BaseMetric[source]#
Bases:
ABCBase 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 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.
- class embodichain.lab.sim.motion.workspace.metrics.DensityMetric[source]#
Bases:
BaseMetricDensity 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:
BaseMetricManipulability 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:
BaseMetricReachability 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