controllers

Controller base classes and compliance-control defaults.

Author: Mihael Simonic

class robotblockset.controllers.rbs_controller_type[source]

Bases: rbs_object

Base interface for RobotBlockSet controllers.

This base class defines the motion and compliance methods expected from controller implementations. Subclasses can override the compliance-related methods when the underlying backend supports configurable stiffness or damping.

Initialize the base object state.

Returns:

This constructor initializes the object name and verbosity level.

Return type:

None

abstractmethod GoTo_q() None[source]

Move in joint space.

Notes

This method must be implemented by subclasses that support joint-space commands.

abstractmethod GoTo_X() None[source]

Move in Cartesian space.

Notes

This method must be implemented by subclasses that support Cartesian-space commands.

GetJointStiffness() ndarray[source]

Return joint stiffness values.

Returns:

Joint stiffness values. A default high-stiffness vector is returned when the backend does not support explicit stiffness queries.

Return type:

JointConfigurationType

SetJointStiffness(stiffness: ndarray | List[float] | List[int] | Tuple[float, ...] | Tuple[int, ...], **kwargs: Any) None[source]

Set joint stiffness.

Parameters:
  • stiffness (ArrayLike) – Desired joint stiffness values.

  • **kwargs (Any) – Backend-specific options accepted by subclasses.

Notes

The default implementation only reports that compliance control is not supported.

GetJointDamping() ndarray[source]

Return joint damping values.

Returns:

Joint damping values. A unit vector is returned when the backend does not support explicit damping queries.

Return type:

JointConfigurationType

SetJointDamping(damping: ndarray | List[float] | List[int] | Tuple[float, ...] | Tuple[int, ...], **kwargs: Any) None[source]

Set joint damping.

Parameters:
  • damping (ArrayLike) – Desired joint damping values.

  • **kwargs (Any) – Backend-specific options accepted by subclasses.

Notes

The default implementation only reports that compliance control is not supported.

SetJointSoft(softness: float, **kwargs: Any) None[source]

Set joint compliance scalar.

Parameters:
  • softness (float) – compliant behavior.

  • **kwargs (Any) – Backend-specific options accepted by subclasses.

Notes

The default implementation only reports that compliance control is not supported.

SetJointStiff() None[source]

Set joints to stiff mode.

Notes

This is a convenience wrapper around SetJointSoft() with a softness of 1.0.

SetJointCompliant() None[source]

Set joints to compliant mode.

Notes

This is a convenience wrapper around SetJointSoft() with a softness of 0.0.

GetCartesianStiffness() ndarray[source]

Return Cartesian stiffness values.

Returns:

Cartesian stiffness values for the six task-space degrees of freedom. A default high-stiffness vector is returned when the backend does not support explicit stiffness queries.

Return type:

np.ndarray

SetCartesianStiffness(stiffness: ndarray | List[float] | List[int] | Tuple[float, ...] | Tuple[int, ...], **kwargs: Any) None[source]

Set Cartesian stiffness.

Parameters:
  • stiffness (ArrayLike) – Desired Cartesian stiffness values.

  • **kwargs (Any) – Backend-specific options accepted by subclasses.

Notes

The default implementation only reports that compliance control is not supported.

GetCartesianDamping() ndarray[source]

Return Cartesian damping values.

Returns:

Cartesian damping values for the six task-space degrees of freedom. A unit vector is returned when the backend does not support explicit damping queries.

Return type:

np.ndarray

SetCartesianDamping(damping: ndarray | List[float] | List[int] | Tuple[float, ...] | Tuple[int, ...], **kwargs: Any) None[source]

Set Cartesian damping.

Parameters:
  • damping (ArrayLike) – Desired Cartesian damping values.

  • **kwargs (Any) – Backend-specific options accepted by subclasses.

Notes

The default implementation only reports that compliance control is not supported.

SetCartesianSoft(softness: float, **kwargs: Any) None[source]

Set Cartesian compliance scalar.

Parameters:
  • softness (float) – Scalar compliance factor for task-space behavior.

  • **kwargs (Any) – Backend-specific options accepted by subclasses.

Notes

The default implementation only reports that compliance control is not supported.

SetCartesianStiff() None[source]

Set Cartesian space to stiff mode.

Notes

This is a convenience wrapper around SetCartesianSoft() with a softness of 1.0.

SetCartesianCompliant() None[source]

Set Cartesian space to compliant mode.

Notes

This is a convenience wrapper around SetCartesianSoft() with a softness of 0.0.

class robotblockset.controllers.joint_controller_type[source]

Bases: rbs_controller_type

Base class for controllers that only accept joint commands.

Initialize the base object state.

Returns:

This constructor initializes the object name and verbosity level.

Return type:

None

GoTo_X() None[source]

Reject Cartesian commands.

Raises:

TypeError – Always raised because joint controllers do not accept Cartesian motion commands.

class robotblockset.controllers.cartesian_controller_type[source]

Bases: rbs_controller_type

Base class for controllers that only accept Cartesian commands.

Initialize the base object state.

Returns:

This constructor initializes the object name and verbosity level.

Return type:

None

GoTo_q() None[source]

Reject joint commands.

Raises:

TypeError – Always raised because Cartesian controllers do not accept joint-space motion commands.

class robotblockset.controllers.compliant_controller_type[source]

Bases: rbs_controller_type

Marker base class for controllers with compliance support.

Initialize the base object state.

Returns:

This constructor initializes the object name and verbosity level.

Return type:

None

Classes

cartesian_controller_type()

Base class for controllers that only accept Cartesian commands.

compliant_controller_type()

Marker base class for controllers with compliance support.

joint_controller_type()

Base class for controllers that only accept joint commands.

rbs_controller_type()

Base interface for RobotBlockSet controllers.