Actuation API reference¶
soromox.actuation
¶
Actuator
¶
Bases: Module
flowchart TD
soromox.actuation.Actuator[Actuator]
click soromox.actuation.Actuator href "" "soromox.actuation.Actuator"
A transmission paired with an effort law and ordered channel metadata.
ActuatorMetadata
¶
ActuatorMetadata(*, labels: tuple[str, ...], units: str | tuple[str, ...], kind: ActuatorKind = 'generic', lower_bounds: Array | None = None, upper_bounds: Array | None = None)
Bases: Module
flowchart TD
soromox.actuation.ActuatorMetadata[ActuatorMetadata]
click soromox.actuation.ActuatorMetadata href "" "soromox.actuation.ActuatorMetadata"
Ordered labels, units, limits, and semantics for input channels.
DirectEffort
¶
Bases: EffortModel
flowchart TD
soromox.actuation.DirectEffort[DirectEffort]
soromox.actuation.core.EffortModel[EffortModel]
soromox.actuation.core.EffortModel --> soromox.actuation.DirectEffort
click soromox.actuation.DirectEffort href "" "soromox.actuation.DirectEffort"
click soromox.actuation.core.EffortModel href "" "soromox.actuation.core.EffortModel"
Stateless effort model for which effort is exactly the user control.
EffortModel
¶
Bases: Module
flowchart TD
soromox.actuation.EffortModel[EffortModel]
click soromox.actuation.EffortModel href "" "soromox.actuation.EffortModel"
Map controls to efforts work-conjugate to transmission coordinates.
effort
abstractmethod
¶
Return actuator effort for the current control and transmission state.
IdentityActuator
¶
Bases: Actuator
flowchart TD
soromox.actuation.IdentityActuator[IdentityActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.IdentityActuator
click soromox.actuation.IdentityActuator href "" "soromox.actuation.IdentityActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Direct generalized-coordinate actuation used by default.
IdentityActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.IdentityActuatorParams[IdentityActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.IdentityActuatorParams
click soromox.actuation.IdentityActuatorParams href "" "soromox.actuation.IdentityActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Empty immutable parameter object for identity actuation.
validate_against_structure
¶
Validate params against static construction choices.
IdentityTransmission
¶
Bases: Transmission
flowchart TD
soromox.actuation.IdentityTransmission[IdentityTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.IdentityTransmission
click soromox.actuation.IdentityTransmission href "" "soromox.actuation.IdentityTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Identity generalized-coordinate transmission.
PassiveElement
¶
Bases: Module
flowchart TD
soromox.actuation.PassiveElement[PassiveElement]
click soromox.actuation.PassiveElement href "" "soromox.actuation.PassiveElement"
Independent passive contribution to robot mechanics.
Transmission
¶
Bases: Module
flowchart TD
soromox.actuation.Transmission[Transmission]
click soromox.actuation.Transmission href "" "soromox.actuation.Transmission"
Map robot configuration to work-conjugate actuator coordinates.
AffineJointTransmission
¶
AffineJointTransmission(params: AffineJointTransmissionParams)
Bases: Transmission
flowchart TD
soromox.actuation.AffineJointTransmission[AffineJointTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.AffineJointTransmission
click soromox.actuation.AffineJointTransmission href "" "soromox.actuation.AffineJointTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Affine actuator coordinates R @ (q - q_ref) + y_a0.
AffineJointTransmissionParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.AffineJointTransmissionParams[AffineJointTransmissionParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.AffineJointTransmissionParams
click soromox.actuation.AffineJointTransmissionParams href "" "soromox.actuation.AffineJointTransmissionParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Parameters for an affine mapping to actuator coordinates.
Attributes:
| Name | Type | Description |
|---|---|---|
routing_matrix |
Array
|
Matrix |
reference_configuration |
Array
|
Generalized configuration |
coordinate_offset |
Array
|
Per-channel actuator coordinate |
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedTendonActuator
¶
ArticulatedTendonActuator(*, params: ArticulatedTendonActuatorParams, labels: tuple[str, ...] | None = None, name: str = 'articulated_tendons')
Bases: Actuator
flowchart TD
soromox.actuation.ArticulatedTendonActuator[ArticulatedTendonActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.ArticulatedTendonActuator
click soromox.actuation.ArticulatedTendonActuator href "" "soromox.actuation.ArticulatedTendonActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Positive-tension actuation through fixed signed joint routing.
from_routing
classmethod
¶
from_routing(routing_matrix: Array, *, reference_configuration: Array | None = None, coordinate_offset: Array | float = 0.0, lower_bounds: Array | float = 0.0, upper_bounds: Array | float = inf, labels: tuple[str, ...] | None = None, name: str = 'articulated_tendons') -> ArticulatedTendonActuator
Construct direct-tension actuation from signed joint routing.
The resulting actuator coordinate is
routing_matrix @ (q - reference_configuration) + coordinate_offset.
Each routing row is the signed contraction Jacobian of one tendon.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
routing_matrix
|
Array
|
Signed tendon routing with one row per tendon and one column per generalized coordinate. |
required |
reference_configuration
|
Array | None
|
Configuration |
None
|
coordinate_offset
|
Array | float
|
Actuator coordinate |
0.0
|
lower_bounds
|
Array | float
|
Lower tension bounds, shared or per tendon. |
0.0
|
upper_bounds
|
Array | float
|
Upper tension bounds, shared or per tendon. |
inf
|
labels
|
tuple[str, ...] | None
|
Optional input label for each tendon. |
None
|
name
|
str
|
Component name used for identification and rendering. |
'articulated_tendons'
|
Returns:
| Type | Description |
|---|---|
ArticulatedTendonActuator
|
An articulated tendon actuator with direct tension effort. |
ArticulatedTendonActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.ArticulatedTendonActuatorParams[ArticulatedTendonActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.ArticulatedTendonActuatorParams
click soromox.actuation.ArticulatedTendonActuatorParams href "" "soromox.actuation.ArticulatedTendonActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Physical parameters for direct-effort articulated tendons.
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedTendonImpedance
¶
ArticulatedTendonImpedance(*, params: ArticulatedTendonImpedanceParams, name: str = 'passive_articulated_tendons')
Bases: PassiveElement
flowchart TD
soromox.actuation.ArticulatedTendonImpedance[ArticulatedTendonImpedance]
soromox.actuation.core.PassiveElement[PassiveElement]
soromox.actuation.core.PassiveElement --> soromox.actuation.ArticulatedTendonImpedance
click soromox.actuation.ArticulatedTendonImpedance href "" "soromox.actuation.ArticulatedTendonImpedance"
click soromox.actuation.core.PassiveElement href "" "soromox.actuation.core.PassiveElement"
Passive spring-damper mechanics in affine tendon coordinates.
from_routing
classmethod
¶
from_routing(routing_matrix: Array, *, stiffness: Array, damping: Array, reference_configuration: Array | None = None, coordinate_offset: Array | float = 0.0, name: str = 'passive_articulated_tendons') -> ArticulatedTendonImpedance
Construct passive spring-damper mechanics in tendon coordinates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
routing_matrix
|
Array
|
Signed tendon routing with one row per passive tendon and one column per generalized coordinate. |
required |
stiffness
|
Array
|
Actuator-space stiffness, one value per tendon. |
required |
damping
|
Array
|
Actuator-space damping, one value per tendon. |
required |
reference_configuration
|
Array | None
|
Configuration |
None
|
coordinate_offset
|
Array | float
|
Tendon deformation |
0.0
|
name
|
str
|
Component name used for identification and rendering. |
'passive_articulated_tendons'
|
Returns:
| Type | Description |
|---|---|
ArticulatedTendonImpedance
|
A passive articulated tendon impedance component. |
ArticulatedTendonImpedanceParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.ArticulatedTendonImpedanceParams[ArticulatedTendonImpedanceParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.ArticulatedTendonImpedanceParams
click soromox.actuation.ArticulatedTendonImpedanceParams href "" "soromox.actuation.ArticulatedTendonImpedanceParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Spring-damper parameters for articulated tendon coordinates.
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedMcKibbenActuator
¶
ArticulatedMcKibbenActuator(*, params: ArticulatedMcKibbenActuatorParams, labels: tuple[str, ...] | None = None, name: str = 'mckibben_muscles')
Bases: Actuator
flowchart TD
soromox.actuation.ArticulatedMcKibbenActuator[ArticulatedMcKibbenActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.ArticulatedMcKibbenActuator
click soromox.actuation.ArticulatedMcKibbenActuator href "" "soromox.actuation.ArticulatedMcKibbenActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Direct-pressure McKibben muscle actuator.
Controls are pressures in pascals. The transmission supplies equivalent volume coordinates, while diagnostic helpers expose effective lengths, endpoint segments, and signed axial forces. Installation requires a spatial articulated robot implementing the kinematic-frame contract; continuum hosts must use an appropriate continuum transmission instead.
empty
classmethod
¶
empty(actuators_per_group: int = 4) -> ArticulatedMcKibbenActuator
Construct a zero-channel actuator with fixed empty group topology.
ArticulatedMcKibbenActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.ArticulatedMcKibbenActuatorParams[ArticulatedMcKibbenActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.ArticulatedMcKibbenActuatorParams
click soromox.actuation.ArticulatedMcKibbenActuatorParams href "" "soromox.actuation.ArticulatedMcKibbenActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
McKibben transmission and pressure bounds.
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedMcKibbenTransmission
¶
ArticulatedMcKibbenTransmission(params: ArticulatedMcKibbenTransmissionParams)
Bases: Transmission
flowchart TD
soromox.actuation.ArticulatedMcKibbenTransmission[ArticulatedMcKibbenTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.ArticulatedMcKibbenTransmission
click soromox.actuation.ArticulatedMcKibbenTransmission href "" "soromox.actuation.ArticulatedMcKibbenTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Pressure-work transmission using McKibben volume coordinates.
The transmission owns fixed and moving attachment geometry for grouped universal joints on a spatial articulated host. It computes effective muscle lengths, the volume-like coordinate work-conjugate to pressure, its analytic moment matrix, and renderer-facing endpoint segments without embedding those mechanics in a particular articulated robot class.
velocities
¶
velocities(robot: SoftRobot, q: Array, qd: Array) -> Array
Return transmission-coordinate velocities.
local_segments
¶
Return group-local fixed/moving endpoint segments.
Returns:
| Type | Description |
|---|---|
Array
|
Array with shape |
Array
|
Endpoint axis 2 is ordered as |
segments
¶
Return world-space actuator endpoint segments for rendering.
Returns:
| Type | Description |
|---|---|
Array
|
Array with shape |
Array
|
ordered as |
effective_lengths
¶
Return effective McKibben muscle lengths.
For actuator i, the effective length is its current geometric
endpoint distance minus reference_length[i] plus
length_offset[i].
coordinates
¶
Return pressure-work coordinates for all McKibben muscles.
The coordinate is (B**2 - length**2) * length / (4*pi*N**2) and has
volume units, making pressure its work-conjugate effort.
moment_matrix
¶
Return the analytic pressure-to-generalized-force matrix A(q).
axial_forces
¶
Return per-muscle axial forces for the supplied pressures.
The sign convention and constitutive equation match the cached UMArm model and its MuJoCo implementation.
ArticulatedMcKibbenTransmissionParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.ArticulatedMcKibbenTransmissionParams[ArticulatedMcKibbenTransmissionParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.ArticulatedMcKibbenTransmissionParams
click soromox.actuation.ArticulatedMcKibbenTransmissionParams href "" "soromox.actuation.ArticulatedMcKibbenTransmissionParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Attachment geometry and constitutive parameters for McKibben groups.
validate_against_structure
¶
Validate params against static construction choices.
from_cached_npz
classmethod
¶
from_cached_npz(path: str | Path) -> ArticulatedMcKibbenTransmissionParams
Load McKibben transmission fields from an existing UMArm cache.
BaseThreadlikeRoutingParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.BaseThreadlikeRoutingParams[BaseThreadlikeRoutingParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.BaseThreadlikeRoutingParams
click soromox.actuation.BaseThreadlikeRoutingParams href "" "soromox.actuation.BaseThreadlikeRoutingParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Base PyTree contract for vectorized threadlike routing parameters.
validate_against_structure
¶
Validate params against static construction choices.
replace
¶
replace(**updates: Any) -> BaseThreadlikeRoutingParams
Replace numeric fields while keeping routing topology immutable.
LinearThreadlikeRoutingParams
¶
Bases: BaseThreadlikeRoutingParams
flowchart TD
soromox.actuation.LinearThreadlikeRoutingParams[LinearThreadlikeRoutingParams]
soromox.actuation.threadlike.BaseThreadlikeRoutingParams[BaseThreadlikeRoutingParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.actuation.threadlike.BaseThreadlikeRoutingParams --> soromox.actuation.LinearThreadlikeRoutingParams
soromox.systems.params.BaseSystemParams --> soromox.actuation.threadlike.BaseThreadlikeRoutingParams
click soromox.actuation.LinearThreadlikeRoutingParams href "" "soromox.actuation.LinearThreadlikeRoutingParams"
click soromox.actuation.threadlike.BaseThreadlikeRoutingParams href "" "soromox.actuation.threadlike.BaseThreadlikeRoutingParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Batched linear material-frame routing and contiguous segment spans.
intercept and slope have shape (num_paths, 3) in the local
material frame. Because SoRoMoX aligns the backbone with the local x-axis,
their x-components must be zero; the remaining components describe the
path within each material-frame cross-section.
replace
¶
replace(**updates: Any) -> BaseThreadlikeRoutingParams
Replace numeric fields while keeping routing topology immutable.
validate_against_structure
¶
Validate params against static construction choices.
ThreadlikeActuator
¶
ThreadlikeActuator(*, params: ThreadlikeActuatorParams, routing: ThreadlikeRouting | None = None, labels: tuple[str, ...], units: str | tuple[str, ...], name: str, kind: ThreadlikeKind)
Bases: Actuator
flowchart TD
soromox.actuation.ThreadlikeActuator[ThreadlikeActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.ThreadlikeActuator
click soromox.actuation.ThreadlikeActuator href "" "soromox.actuation.ThreadlikeActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Vectorized threadlike actuator with modality-specific presets.
ThreadlikeActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.ThreadlikeActuatorParams[ThreadlikeActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.ThreadlikeActuatorParams
click soromox.actuation.ThreadlikeActuatorParams href "" "soromox.actuation.ThreadlikeActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Physical and control parameters for a threadlike actuator family.
validate_against_structure
¶
Validate params against static construction choices.
ThreadlikeImpedance
¶
ThreadlikeImpedance(*, routing: ThreadlikeRouting | BaseThreadlikeRoutingParams, stiffness: Array, damping: Array, rest_length: Array, name: str = 'passive_threadlike')
Bases: PassiveElement
flowchart TD
soromox.actuation.ThreadlikeImpedance[ThreadlikeImpedance]
soromox.actuation.core.PassiveElement[PassiveElement]
soromox.actuation.core.PassiveElement --> soromox.actuation.ThreadlikeImpedance
click soromox.actuation.ThreadlikeImpedance href "" "soromox.actuation.ThreadlikeImpedance"
click soromox.actuation.core.PassiveElement href "" "soromox.actuation.core.PassiveElement"
Passive spring-damper mechanics along fixed threadlike paths.
ThreadlikeImpedanceParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.ThreadlikeImpedanceParams[ThreadlikeImpedanceParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.ThreadlikeImpedanceParams
click soromox.actuation.ThreadlikeImpedanceParams href "" "soromox.actuation.ThreadlikeImpedanceParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Spring-damper parameters for passive routed paths.
validate_against_structure
¶
Validate params against static construction choices.
ThreadlikeRouting
¶
Bases: Module
flowchart TD
soromox.actuation.ThreadlikeRouting[ThreadlikeRouting]
click soromox.actuation.ThreadlikeRouting href "" "soromox.actuation.ThreadlikeRouting"
Runtime routing object for a batched fixed material-frame path family.
linear
classmethod
¶
linear(*, intercept: Array, slope: Array | float = 0.0, start_segment_index: int | tuple[int, ...] | Array = 0, end_segment_index: int | tuple[int, ...] | Array = 0) -> ThreadlikeRouting
Construct linear cross-section paths in the local material frame.
The final array axis is [x, y, z]. Local x follows the backbone, so
the x-components of intercept and slope must both be zero.
offset
¶
offset(path_params: BaseThreadlikeRoutingParams, s: Array) -> Array
Evaluate one path's material-frame offset at s.
derivative
¶
derivative(path_params: BaseThreadlikeRoutingParams, s: Array) -> Array
Evaluate one path's material-frame offset derivative at s.
ThreadlikeTransmission
¶
ThreadlikeTransmission(params: ThreadlikeTransmissionParams, *, routing: ThreadlikeRouting | None = None)
Bases: Transmission
flowchart TD
soromox.actuation.ThreadlikeTransmission[ThreadlikeTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.ThreadlikeTransmission
click soromox.actuation.ThreadlikeTransmission href "" "soromox.actuation.ThreadlikeTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Transmission whose coordinates are scaled routed-path lengths.
ThreadlikeTransmissionParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.ThreadlikeTransmissionParams[ThreadlikeTransmissionParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.ThreadlikeTransmissionParams
click soromox.actuation.ThreadlikeTransmissionParams href "" "soromox.actuation.ThreadlikeTransmissionParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Routing parameters and constant work-coordinate scale per path.
validate_against_structure
¶
Validate params against static construction choices.
linear_threadlike_routing
¶
linear_threadlike_routing(params: LinearThreadlikeRoutingParams, s: Array) -> Array
Return material-frame offsets intercept + slope * s.
linear_threadlike_routing_derivative
¶
linear_threadlike_routing_derivative(params: LinearThreadlikeRoutingParams, s: Array) -> Array
Return the arc-length derivative of a linear routing offset.
core
¶
Composable actuation primitives.
The actuation model follows a work-conjugate formulation. A transmission
defines actuator coordinates y_a(q) and their moment matrix
A(q) = dy_a/dq.T. An effort model maps user controls to efforts conjugate to
those coordinates, and generalized actuation forces are A(q) @ effort.
ActuatorMetadata
¶
ActuatorMetadata(*, labels: tuple[str, ...], units: str | tuple[str, ...], kind: ActuatorKind = 'generic', lower_bounds: Array | None = None, upper_bounds: Array | None = None)
Bases: Module
flowchart TD
soromox.actuation.core.ActuatorMetadata[ActuatorMetadata]
click soromox.actuation.core.ActuatorMetadata href "" "soromox.actuation.core.ActuatorMetadata"
Ordered labels, units, limits, and semantics for input channels.
Transmission
¶
Bases: Module
flowchart TD
soromox.actuation.core.Transmission[Transmission]
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Map robot configuration to work-conjugate actuator coordinates.
EffortModel
¶
Bases: Module
flowchart TD
soromox.actuation.core.EffortModel[EffortModel]
click soromox.actuation.core.EffortModel href "" "soromox.actuation.core.EffortModel"
Map controls to efforts work-conjugate to transmission coordinates.
effort
abstractmethod
¶
Return actuator effort for the current control and transmission state.
DirectEffort
¶
Bases: EffortModel
flowchart TD
soromox.actuation.core.DirectEffort[DirectEffort]
soromox.actuation.core.EffortModel[EffortModel]
soromox.actuation.core.EffortModel --> soromox.actuation.core.DirectEffort
click soromox.actuation.core.DirectEffort href "" "soromox.actuation.core.DirectEffort"
click soromox.actuation.core.EffortModel href "" "soromox.actuation.core.EffortModel"
Stateless effort model for which effort is exactly the user control.
PassiveElement
¶
Bases: Module
flowchart TD
soromox.actuation.core.PassiveElement[PassiveElement]
click soromox.actuation.core.PassiveElement href "" "soromox.actuation.core.PassiveElement"
Independent passive contribution to robot mechanics.
Actuator
¶
Bases: Module
flowchart TD
soromox.actuation.core.Actuator[Actuator]
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
A transmission paired with an effort law and ordered channel metadata.
IdentityActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.core.IdentityActuatorParams[IdentityActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.core.IdentityActuatorParams
click soromox.actuation.core.IdentityActuatorParams href "" "soromox.actuation.core.IdentityActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Empty immutable parameter object for identity actuation.
validate_against_structure
¶
Validate params against static construction choices.
IdentityTransmission
¶
Bases: Transmission
flowchart TD
soromox.actuation.core.IdentityTransmission[IdentityTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.core.IdentityTransmission
click soromox.actuation.core.IdentityTransmission href "" "soromox.actuation.core.IdentityTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Identity generalized-coordinate transmission.
IdentityActuator
¶
Bases: Actuator
flowchart TD
soromox.actuation.core.IdentityActuator[IdentityActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.core.IdentityActuator
click soromox.actuation.core.IdentityActuator href "" "soromox.actuation.core.IdentityActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Direct generalized-coordinate actuation used by default.
joint
¶
Joint-space transmissions and articulated tendon mechanics.
AffineJointTransmissionParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.joint.AffineJointTransmissionParams[AffineJointTransmissionParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.joint.AffineJointTransmissionParams
click soromox.actuation.joint.AffineJointTransmissionParams href "" "soromox.actuation.joint.AffineJointTransmissionParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Parameters for an affine mapping to actuator coordinates.
Attributes:
| Name | Type | Description |
|---|---|---|
routing_matrix |
Array
|
Matrix |
reference_configuration |
Array
|
Generalized configuration |
coordinate_offset |
Array
|
Per-channel actuator coordinate |
validate_against_structure
¶
Validate params against static construction choices.
AffineJointTransmission
¶
AffineJointTransmission(params: AffineJointTransmissionParams)
Bases: Transmission
flowchart TD
soromox.actuation.joint.AffineJointTransmission[AffineJointTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.joint.AffineJointTransmission
click soromox.actuation.joint.AffineJointTransmission href "" "soromox.actuation.joint.AffineJointTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Affine actuator coordinates R @ (q - q_ref) + y_a0.
ArticulatedTendonActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.joint.ArticulatedTendonActuatorParams[ArticulatedTendonActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.joint.ArticulatedTendonActuatorParams
click soromox.actuation.joint.ArticulatedTendonActuatorParams href "" "soromox.actuation.joint.ArticulatedTendonActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Physical parameters for direct-effort articulated tendons.
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedTendonActuator
¶
ArticulatedTendonActuator(*, params: ArticulatedTendonActuatorParams, labels: tuple[str, ...] | None = None, name: str = 'articulated_tendons')
Bases: Actuator
flowchart TD
soromox.actuation.joint.ArticulatedTendonActuator[ArticulatedTendonActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.joint.ArticulatedTendonActuator
click soromox.actuation.joint.ArticulatedTendonActuator href "" "soromox.actuation.joint.ArticulatedTendonActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Positive-tension actuation through fixed signed joint routing.
from_routing
classmethod
¶
from_routing(routing_matrix: Array, *, reference_configuration: Array | None = None, coordinate_offset: Array | float = 0.0, lower_bounds: Array | float = 0.0, upper_bounds: Array | float = inf, labels: tuple[str, ...] | None = None, name: str = 'articulated_tendons') -> ArticulatedTendonActuator
Construct direct-tension actuation from signed joint routing.
The resulting actuator coordinate is
routing_matrix @ (q - reference_configuration) + coordinate_offset.
Each routing row is the signed contraction Jacobian of one tendon.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
routing_matrix
|
Array
|
Signed tendon routing with one row per tendon and one column per generalized coordinate. |
required |
reference_configuration
|
Array | None
|
Configuration |
None
|
coordinate_offset
|
Array | float
|
Actuator coordinate |
0.0
|
lower_bounds
|
Array | float
|
Lower tension bounds, shared or per tendon. |
0.0
|
upper_bounds
|
Array | float
|
Upper tension bounds, shared or per tendon. |
inf
|
labels
|
tuple[str, ...] | None
|
Optional input label for each tendon. |
None
|
name
|
str
|
Component name used for identification and rendering. |
'articulated_tendons'
|
Returns:
| Type | Description |
|---|---|
ArticulatedTendonActuator
|
An articulated tendon actuator with direct tension effort. |
ArticulatedTendonImpedanceParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.joint.ArticulatedTendonImpedanceParams[ArticulatedTendonImpedanceParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.joint.ArticulatedTendonImpedanceParams
click soromox.actuation.joint.ArticulatedTendonImpedanceParams href "" "soromox.actuation.joint.ArticulatedTendonImpedanceParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Spring-damper parameters for articulated tendon coordinates.
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedTendonImpedance
¶
ArticulatedTendonImpedance(*, params: ArticulatedTendonImpedanceParams, name: str = 'passive_articulated_tendons')
Bases: PassiveElement
flowchart TD
soromox.actuation.joint.ArticulatedTendonImpedance[ArticulatedTendonImpedance]
soromox.actuation.core.PassiveElement[PassiveElement]
soromox.actuation.core.PassiveElement --> soromox.actuation.joint.ArticulatedTendonImpedance
click soromox.actuation.joint.ArticulatedTendonImpedance href "" "soromox.actuation.joint.ArticulatedTendonImpedance"
click soromox.actuation.core.PassiveElement href "" "soromox.actuation.core.PassiveElement"
Passive spring-damper mechanics in affine tendon coordinates.
from_routing
classmethod
¶
from_routing(routing_matrix: Array, *, stiffness: Array, damping: Array, reference_configuration: Array | None = None, coordinate_offset: Array | float = 0.0, name: str = 'passive_articulated_tendons') -> ArticulatedTendonImpedance
Construct passive spring-damper mechanics in tendon coordinates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
routing_matrix
|
Array
|
Signed tendon routing with one row per passive tendon and one column per generalized coordinate. |
required |
stiffness
|
Array
|
Actuator-space stiffness, one value per tendon. |
required |
damping
|
Array
|
Actuator-space damping, one value per tendon. |
required |
reference_configuration
|
Array | None
|
Configuration |
None
|
coordinate_offset
|
Array | float
|
Tendon deformation |
0.0
|
name
|
str
|
Component name used for identification and rendering. |
'passive_articulated_tendons'
|
Returns:
| Type | Description |
|---|---|
ArticulatedTendonImpedance
|
A passive articulated tendon impedance component. |
mckibben
¶
McKibben pneumatic-muscle transmission for spatial articulated robots.
This module's geometry is intentionally specific to grouped muscles spanning two-axis articulated joints. It requires a host that provides spatial kinematic frames; it is not a continuum-rod transmission. Continuum models can use threadlike muscle or equivalent pressure-chamber coordinates, while a future continuum McKibben model may reuse the constitutive equation with a different geometry contract.
ArticulatedMcKibbenTransmissionParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.mckibben.ArticulatedMcKibbenTransmissionParams[ArticulatedMcKibbenTransmissionParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.mckibben.ArticulatedMcKibbenTransmissionParams
click soromox.actuation.mckibben.ArticulatedMcKibbenTransmissionParams href "" "soromox.actuation.mckibben.ArticulatedMcKibbenTransmissionParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Attachment geometry and constitutive parameters for McKibben groups.
from_cached_npz
classmethod
¶
from_cached_npz(path: str | Path) -> ArticulatedMcKibbenTransmissionParams
Load McKibben transmission fields from an existing UMArm cache.
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedMcKibbenTransmission
¶
ArticulatedMcKibbenTransmission(params: ArticulatedMcKibbenTransmissionParams)
Bases: Transmission
flowchart TD
soromox.actuation.mckibben.ArticulatedMcKibbenTransmission[ArticulatedMcKibbenTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.mckibben.ArticulatedMcKibbenTransmission
click soromox.actuation.mckibben.ArticulatedMcKibbenTransmission href "" "soromox.actuation.mckibben.ArticulatedMcKibbenTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Pressure-work transmission using McKibben volume coordinates.
The transmission owns fixed and moving attachment geometry for grouped universal joints on a spatial articulated host. It computes effective muscle lengths, the volume-like coordinate work-conjugate to pressure, its analytic moment matrix, and renderer-facing endpoint segments without embedding those mechanics in a particular articulated robot class.
local_segments
¶
Return group-local fixed/moving endpoint segments.
Returns:
| Type | Description |
|---|---|
Array
|
Array with shape |
Array
|
Endpoint axis 2 is ordered as |
segments
¶
Return world-space actuator endpoint segments for rendering.
Returns:
| Type | Description |
|---|---|
Array
|
Array with shape |
Array
|
ordered as |
effective_lengths
¶
Return effective McKibben muscle lengths.
For actuator i, the effective length is its current geometric
endpoint distance minus reference_length[i] plus
length_offset[i].
coordinates
¶
Return pressure-work coordinates for all McKibben muscles.
The coordinate is (B**2 - length**2) * length / (4*pi*N**2) and has
volume units, making pressure its work-conjugate effort.
moment_matrix
¶
Return the analytic pressure-to-generalized-force matrix A(q).
axial_forces
¶
Return per-muscle axial forces for the supplied pressures.
The sign convention and constitutive equation match the cached UMArm model and its MuJoCo implementation.
ArticulatedMcKibbenActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.mckibben.ArticulatedMcKibbenActuatorParams[ArticulatedMcKibbenActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.mckibben.ArticulatedMcKibbenActuatorParams
click soromox.actuation.mckibben.ArticulatedMcKibbenActuatorParams href "" "soromox.actuation.mckibben.ArticulatedMcKibbenActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
McKibben transmission and pressure bounds.
validate_against_structure
¶
Validate params against static construction choices.
ArticulatedMcKibbenActuator
¶
ArticulatedMcKibbenActuator(*, params: ArticulatedMcKibbenActuatorParams, labels: tuple[str, ...] | None = None, name: str = 'mckibben_muscles')
Bases: Actuator
flowchart TD
soromox.actuation.mckibben.ArticulatedMcKibbenActuator[ArticulatedMcKibbenActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.mckibben.ArticulatedMcKibbenActuator
click soromox.actuation.mckibben.ArticulatedMcKibbenActuator href "" "soromox.actuation.mckibben.ArticulatedMcKibbenActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Direct-pressure McKibben muscle actuator.
Controls are pressures in pascals. The transmission supplies equivalent volume coordinates, while diagnostic helpers expose effective lengths, endpoint segments, and signed axial forces. Installation requires a spatial articulated robot implementing the kinematic-frame contract; continuum hosts must use an appropriate continuum transmission instead.
empty
classmethod
¶
empty(actuators_per_group: int = 4) -> ArticulatedMcKibbenActuator
Construct a zero-channel actuator with fixed empty group topology.
threadlike
¶
Fixed material-frame routing for threadlike continuum actuators.
BaseThreadlikeRoutingParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.threadlike.BaseThreadlikeRoutingParams[BaseThreadlikeRoutingParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.threadlike.BaseThreadlikeRoutingParams
click soromox.actuation.threadlike.BaseThreadlikeRoutingParams href "" "soromox.actuation.threadlike.BaseThreadlikeRoutingParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Base PyTree contract for vectorized threadlike routing parameters.
replace
¶
replace(**updates: Any) -> BaseThreadlikeRoutingParams
Replace numeric fields while keeping routing topology immutable.
validate_against_structure
¶
Validate params against static construction choices.
LinearThreadlikeRoutingParams
¶
Bases: BaseThreadlikeRoutingParams
flowchart TD
soromox.actuation.threadlike.LinearThreadlikeRoutingParams[LinearThreadlikeRoutingParams]
soromox.actuation.threadlike.BaseThreadlikeRoutingParams[BaseThreadlikeRoutingParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.actuation.threadlike.BaseThreadlikeRoutingParams --> soromox.actuation.threadlike.LinearThreadlikeRoutingParams
soromox.systems.params.BaseSystemParams --> soromox.actuation.threadlike.BaseThreadlikeRoutingParams
click soromox.actuation.threadlike.LinearThreadlikeRoutingParams href "" "soromox.actuation.threadlike.LinearThreadlikeRoutingParams"
click soromox.actuation.threadlike.BaseThreadlikeRoutingParams href "" "soromox.actuation.threadlike.BaseThreadlikeRoutingParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Batched linear material-frame routing and contiguous segment spans.
intercept and slope have shape (num_paths, 3) in the local
material frame. Because SoRoMoX aligns the backbone with the local x-axis,
their x-components must be zero; the remaining components describe the
path within each material-frame cross-section.
replace
¶
replace(**updates: Any) -> BaseThreadlikeRoutingParams
Replace numeric fields while keeping routing topology immutable.
validate_against_structure
¶
Validate params against static construction choices.
ThreadlikeRouting
¶
Bases: Module
flowchart TD
soromox.actuation.threadlike.ThreadlikeRouting[ThreadlikeRouting]
click soromox.actuation.threadlike.ThreadlikeRouting href "" "soromox.actuation.threadlike.ThreadlikeRouting"
Runtime routing object for a batched fixed material-frame path family.
linear
classmethod
¶
linear(*, intercept: Array, slope: Array | float = 0.0, start_segment_index: int | tuple[int, ...] | Array = 0, end_segment_index: int | tuple[int, ...] | Array = 0) -> ThreadlikeRouting
Construct linear cross-section paths in the local material frame.
The final array axis is [x, y, z]. Local x follows the backbone, so
the x-components of intercept and slope must both be zero.
offset
¶
offset(path_params: BaseThreadlikeRoutingParams, s: Array) -> Array
Evaluate one path's material-frame offset at s.
derivative
¶
derivative(path_params: BaseThreadlikeRoutingParams, s: Array) -> Array
Evaluate one path's material-frame offset derivative at s.
ThreadlikeTransmissionParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.threadlike.ThreadlikeTransmissionParams[ThreadlikeTransmissionParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.threadlike.ThreadlikeTransmissionParams
click soromox.actuation.threadlike.ThreadlikeTransmissionParams href "" "soromox.actuation.threadlike.ThreadlikeTransmissionParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Routing parameters and constant work-coordinate scale per path.
validate_against_structure
¶
Validate params against static construction choices.
ThreadlikeTransmission
¶
ThreadlikeTransmission(params: ThreadlikeTransmissionParams, *, routing: ThreadlikeRouting | None = None)
Bases: Transmission
flowchart TD
soromox.actuation.threadlike.ThreadlikeTransmission[ThreadlikeTransmission]
soromox.actuation.core.Transmission[Transmission]
soromox.actuation.core.Transmission --> soromox.actuation.threadlike.ThreadlikeTransmission
click soromox.actuation.threadlike.ThreadlikeTransmission href "" "soromox.actuation.threadlike.ThreadlikeTransmission"
click soromox.actuation.core.Transmission href "" "soromox.actuation.core.Transmission"
Transmission whose coordinates are scaled routed-path lengths.
ThreadlikeActuatorParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.threadlike.ThreadlikeActuatorParams[ThreadlikeActuatorParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.threadlike.ThreadlikeActuatorParams
click soromox.actuation.threadlike.ThreadlikeActuatorParams href "" "soromox.actuation.threadlike.ThreadlikeActuatorParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Physical and control parameters for a threadlike actuator family.
validate_against_structure
¶
Validate params against static construction choices.
ThreadlikeActuator
¶
ThreadlikeActuator(*, params: ThreadlikeActuatorParams, routing: ThreadlikeRouting | None = None, labels: tuple[str, ...], units: str | tuple[str, ...], name: str, kind: ThreadlikeKind)
Bases: Actuator
flowchart TD
soromox.actuation.threadlike.ThreadlikeActuator[ThreadlikeActuator]
soromox.actuation.core.Actuator[Actuator]
soromox.actuation.core.Actuator --> soromox.actuation.threadlike.ThreadlikeActuator
click soromox.actuation.threadlike.ThreadlikeActuator href "" "soromox.actuation.threadlike.ThreadlikeActuator"
click soromox.actuation.core.Actuator href "" "soromox.actuation.core.Actuator"
Vectorized threadlike actuator with modality-specific presets.
ThreadlikeImpedanceParams
¶
Bases: BaseSystemParams
flowchart TD
soromox.actuation.threadlike.ThreadlikeImpedanceParams[ThreadlikeImpedanceParams]
soromox.systems.params.BaseSystemParams[BaseSystemParams]
soromox.systems.params.BaseSystemParams --> soromox.actuation.threadlike.ThreadlikeImpedanceParams
click soromox.actuation.threadlike.ThreadlikeImpedanceParams href "" "soromox.actuation.threadlike.ThreadlikeImpedanceParams"
click soromox.systems.params.BaseSystemParams href "" "soromox.systems.params.BaseSystemParams"
Spring-damper parameters for passive routed paths.
validate_against_structure
¶
Validate params against static construction choices.
ThreadlikeImpedance
¶
ThreadlikeImpedance(*, routing: ThreadlikeRouting | BaseThreadlikeRoutingParams, stiffness: Array, damping: Array, rest_length: Array, name: str = 'passive_threadlike')
Bases: PassiveElement
flowchart TD
soromox.actuation.threadlike.ThreadlikeImpedance[ThreadlikeImpedance]
soromox.actuation.core.PassiveElement[PassiveElement]
soromox.actuation.core.PassiveElement --> soromox.actuation.threadlike.ThreadlikeImpedance
click soromox.actuation.threadlike.ThreadlikeImpedance href "" "soromox.actuation.threadlike.ThreadlikeImpedance"
click soromox.actuation.core.PassiveElement href "" "soromox.actuation.core.PassiveElement"
Passive spring-damper mechanics along fixed threadlike paths.
linear_threadlike_routing
¶
linear_threadlike_routing(params: LinearThreadlikeRoutingParams, s: Array) -> Array
Return material-frame offsets intercept + slope * s.
linear_threadlike_routing_derivative
¶
linear_threadlike_routing_derivative(params: LinearThreadlikeRoutingParams, s: Array) -> Array
Return the arc-length derivative of a linear routing offset.