mbodied.types.motion package∞
Submodules∞
mbodied.types.motion.control module∞
- class mbodied.types.motion.control.FullJointControl(datum=None, *, joints: Sequence[JointControl] | list[float] = None, names: Sequence[str] | list[float] | None = None)[source]∞
Bases:
Motion
Full joint control.
- joints: Sequence[JointControl] | list[float]∞
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'joints': FieldInfo(annotation=Union[Sequence[JointControl], list[float]], required=False, default_factory=list, description='List of joint values in radians. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'names': FieldInfo(annotation=Union[Sequence[str], list[float], NoneType], required=False, default=None, description='List of joint names. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- names: Sequence[str] | list[float] | None∞
- class mbodied.types.motion.control.HandControl(datum=None, *, pose: Pose6D = None, grasp: JointControl = None)[source]∞
Bases:
Motion
Action for a 7D space representing x, y, z, roll, pitch, yaw, and oppenness of the hand.
- grasp: JointControl∞
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'grasp': FieldInfo(annotation=JointControl, required=False, default_factory=JointControl, description='Openness of the robot hand. 0 is closed, 1 is open. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'pose': FieldInfo(annotation=Pose6D, required=False, default_factory=Pose, description='Pose of the robot hand. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class mbodied.types.motion.control.HeadControl(datum=None, *, tilt: JointControl = None, pan: JointControl = None)[source]∞
Bases:
Motion
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'pan': FieldInfo(annotation=JointControl, required=False, default_factory=<lambda>, description='Pan of the robot head in radians (left is negative). Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'tilt': FieldInfo(annotation=JointControl, required=False, default_factory=<lambda>, description='Tilt of the robot head in radians (down is negative). Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- pan: JointControl∞
- tilt: JointControl∞
- class mbodied.types.motion.control.HumanoidControl(datum=None, *, left_arm: FullJointControl | None = None, right_arm: FullJointControl | None = None, left_leg: FullJointControl | None = None, right_leg: FullJointControl | None = None, head: HeadControl | None = None)[source]∞
Bases:
Motion
Control for a humanoid robot.
- head: HeadControl | None∞
- left_arm: FullJointControl | None∞
- left_leg: FullJointControl | None∞
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'head': FieldInfo(annotation=Union[HeadControl, NoneType], required=False, default=None, description='Control for the robot head. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'left_arm': FieldInfo(annotation=Union[FullJointControl, NoneType], required=False, default_factory=FullJointControl, description='Control for the left robot arm. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'left_leg': FieldInfo(annotation=Union[FullJointControl, NoneType], required=False, default_factory=FullJointControl, description='Control for the left robot leg. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'right_arm': FieldInfo(annotation=Union[FullJointControl, NoneType], required=False, default_factory=FullJointControl, description='Control for the right robot arm. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'right_leg': FieldInfo(annotation=Union[FullJointControl, NoneType], required=False, default_factory=FullJointControl, description='Control for the right robot leg. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- right_arm: FullJointControl | None∞
- right_leg: FullJointControl | None∞
- class mbodied.types.motion.control.JointControl(datum=None, *, value: float = None)[source]∞
Bases:
Motion
Motion for joint control.
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'value': FieldInfo(annotation=float, required=False, default_factory=<lambda>, description='Joint value in radians. Bounds: [-3.14, 3.14] Motion type: UNSPECIFIED', json_schema_extra={'bounds': [-3.14, 3.14], 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- space()[source]∞
Return the corresponding Gym space for the Sample instance based on its instance attributes. Omits None values.
Override this method in subclasses to customize the space generation.
- value: float∞
- class mbodied.types.motion.control.LocobotActionOrAnswer(datum=None, *, base: LocationAngle | None = None, hand: HandControl | None = None, head: HeadControl | None = None, answer: str | None = '', sleep: bool | None = False, home: bool | None = False)[source]∞
Bases:
MobileSingleHandControl
- answer: str | None∞
- home: bool | None∞
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'answer': FieldInfo(annotation=Union[str, NoneType], required=False, default='', description='Short, one sentence answer to any question a user might have asked. 20 words max.'), 'base': FieldInfo(annotation=Union[LocationAngle, NoneType], required=False, default_factory=LocationAngle, description='Location of the robot on the ground. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'hand': FieldInfo(annotation=Union[HandControl, NoneType], required=False, default_factory=HandControl, description='Control for the robot hand. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'head': FieldInfo(annotation=Union[HeadControl, NoneType], required=False, default=None, description='Control for the robot head. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'home': FieldInfo(annotation=Union[bool, NoneType], required=False, default=False, description='Whether the robot should go to home after executing the motion.'), 'sleep': FieldInfo(annotation=Union[bool, NoneType], required=False, default=False, description='Whether the robot should go to sleep after executing the motion.')}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- sleep: bool | None∞
- class mbodied.types.motion.control.MobileBimanualArmControl(datum=None, *, base: LocationAngle | None = None, left_arm: FullJointControl | None = None, right_arm: FullJointControl | None = None, head: HeadControl | None = None)[source]∞
Bases:
Motion
Control for a robot that can move in 2D space with two arms.
- base: LocationAngle | None∞
- head: HeadControl | None∞
- left_arm: FullJointControl | None∞
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'base': FieldInfo(annotation=Union[LocationAngle, NoneType], required=False, default_factory=LocationAngle, description='Location of the robot on the ground. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'head': FieldInfo(annotation=Union[HeadControl, NoneType], required=False, default=None, description='Control for the robot head. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'left_arm': FieldInfo(annotation=Union[FullJointControl, NoneType], required=False, default_factory=FullJointControl, description='Control for the left robot arm. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'right_arm': FieldInfo(annotation=Union[FullJointControl, NoneType], required=False, default_factory=FullJointControl, description='Control for the right robot arm. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- right_arm: FullJointControl | None∞
- class mbodied.types.motion.control.MobileSingleArmControl(datum=None, *, base: LocationAngle | None = None, arm: FullJointControl | None = None, head: HeadControl | None = None)[source]∞
Bases:
Motion
Control for a robot that can move in 2D space with a single arm.
- arm: FullJointControl | None∞
- base: LocationAngle | None∞
- head: HeadControl | None∞
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'arm': FieldInfo(annotation=Union[FullJointControl, NoneType], required=False, default_factory=FullJointControl, description='Control for the robot arm. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'base': FieldInfo(annotation=Union[LocationAngle, NoneType], required=False, default_factory=LocationAngle, description='Location of the robot on the ground. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'head': FieldInfo(annotation=Union[HeadControl, NoneType], required=False, default=None, description='Control for the robot head. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class mbodied.types.motion.control.MobileSingleHandControl(datum=None, *, base: LocationAngle | None = None, hand: HandControl | None = None, head: HeadControl | None = None)[source]∞
Bases:
Motion
Control for a robot that can move its base in 2D space with a 6D EEF control + grasp.
- base: LocationAngle | None∞
- hand: HandControl | None∞
- head: HeadControl | None∞
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'base': FieldInfo(annotation=Union[LocationAngle, NoneType], required=False, default_factory=LocationAngle, description='Location of the robot on the ground. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'hand': FieldInfo(annotation=Union[HandControl, NoneType], required=False, default_factory=HandControl, description='Control for the robot hand. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None}), 'head': FieldInfo(annotation=Union[HeadControl, NoneType], required=False, default=None, description='Control for the robot head. Motion type: UNSPECIFIED', json_schema_extra={'bounds': None, 'motion_type': 'UNSPECIFIED', 'shape': None})}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
mbodied.types.motion.motion module∞
This module contains the base class for a motion.
There are four basic motion types that are supported: - Absolute motion: The desired absolute coordinates of a limb or joint in the chosen reference frame. - Relative motion: The displacement from the current position of a limb or joint (frame-independent). - Velocity motion: The desired absolute velocity of a limb or joint (frame-independent). - Torque motion: The desired torque of a limb or joint (frame-independent).
The bounds is a list of two floats representing the lower and upper bounds of the motion. The shape is a tuple of integers representing the shape of the motion. The reference_frame is a string representing the reference frame for the coordinates (only applies to absolute motions).
To create a new Pydantic model for a motion, inherit from the Motion class and define pydantic fields with the MotionField, function as you would with any other Pydantic field.
Example
from mbodied_agents.motion import Motion, AbsoluteMotionField, MotionField, MotionType, VelocityMotionField from mbodied_agents.data.sample import Sample
- class Twist(Motion):
x: float = VelocityMotionField(default=0.0, bounds=[-1.0, 1.0]) y: float = VelocityMotionField(default=0.0, bounds=[-1.0, 1.0]) z: float = VelocityMotionField(default=0.0, bounds=[-1.0, 1.0]) roll: float = VelocityMotionField(default=0.0, bounds=[‘-pi’, ‘pi’]) pitch: float = VelocityMotionField(default=0.0, bounds=[‘-pi’, ‘pi’]) yaw: float = VelocityMotionField(default=0.0, bounds=[‘-pi’, ‘pi’])
This automatically generates a Pydantic model with the specified fields and the additional properties of a motion. It is vectorizable, serializable, and validated according to its type. Furthermore, convience methods from the class allow for direct conversion to numpy, pytorch, and gym spaces. See the Sample class documentation for more information: https://mbodi-ai-mbodied-agents.readthedocs-hosted.com/en/latest/ See the Pydantic documentation for more information on how to define Pydantic models: https://pydantic-docs.helpmanual.io/
- mbodied.types.motion.motion.AbsoluteMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for an absolute motion.
This field is used to define the shape and bounds of an absolute motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- class mbodied.types.motion.motion.Motion(datum=None)[source]∞
Bases:
Sample
Base class for a motion.
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- mbodied.types.motion.motion.MotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, motion_type: Literal['UNSPECIFIED', 'OTHER', 'ABSOLUTE', 'RELATIVE', 'VELOCITY', 'TORQUE'] = 'UNSPECIFIED', **kwargs) Any [source]∞
Field for a motion.
- Parameters:
default – Default value for the field.
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
motion_type – Type of the motion. Can be “UNSPECIFIED”, “OTHER”, “ABSOLUTE”, “RELATIVE”, “VELOCITY”, “TORQUE”.
- mbodied.types.motion.motion.OtherMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for an other motion.
This field is used to define the shape and bounds of an other motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- mbodied.types.motion.motion.RelativeMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for a relative motion.
This field is used to define the shape and bounds of a relative motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- mbodied.types.motion.motion.TorqueMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for a torque motion.
This field is used to define the shape and bounds of a torque motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- mbodied.types.motion.motion.VelocityMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for a velocity motion.
This field is used to define the shape and bounds of a velocity motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
Module contents∞
- mbodied.types.motion.AbsoluteMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for an absolute motion.
This field is used to define the shape and bounds of an absolute motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- class mbodied.types.motion.Motion(datum=None)[source]∞
Bases:
Sample
Base class for a motion.
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}∞
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ConfigDict = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'from_attributes': True, 'use_enum_values': False, 'validate_assignment': False}∞
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {}∞
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- mbodied.types.motion.MotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, motion_type: Literal['UNSPECIFIED', 'OTHER', 'ABSOLUTE', 'RELATIVE', 'VELOCITY', 'TORQUE'] = 'UNSPECIFIED', **kwargs) Any [source]∞
Field for a motion.
- Parameters:
default – Default value for the field.
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
motion_type – Type of the motion. Can be “UNSPECIFIED”, “OTHER”, “ABSOLUTE”, “RELATIVE”, “VELOCITY”, “TORQUE”.
- mbodied.types.motion.OtherMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for an other motion.
This field is used to define the shape and bounds of an other motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- mbodied.types.motion.RelativeMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for a relative motion.
This field is used to define the shape and bounds of a relative motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- mbodied.types.motion.TorqueMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for a torque motion.
This field is used to define the shape and bounds of a torque motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.
- mbodied.types.motion.VelocityMotionField(default: Any = PydanticUndefined, bounds: list[float] | None = None, shape: tuple[int] | None = None, description: str | None = None, **kwargs) Any [source]∞
Field for a velocity motion.
This field is used to define the shape and bounds of a velocity motion.
- Parameters:
bounds – Bounds of the motion.
shape – Shape of the motion.
description – Description of the motion.