Articulation Bodies
There are two primary types of articulation supported by Simulate:
Prismatic
joints: slide along a specified axis,Revolute
joints: rotate about a specified axis.
Note that these are currently only implemented in Unity.
class simulate.ArticulationBodyComponent
< source >( joint_type: str anchor_rotation: typing.List[float] = None anchor_position: typing.Optional[typing.List[float]] = None immovable: typing.Optional[bool] = None linear_damping: float = 0.0 angular_damping: float = 0.0 joint_friction: float = 0.0 drive_stiffness: float = 0.0 drive_damping: float = 0.0 drive_force_limit: float = 0.0 drive_target: float = 0.0 drive_target_velocity: float = 0.0 upper_limit: typing.Optional[float] = None lower_limit: typing.Optional[float] = None is_limited: typing.Optional[bool] = False mass: typing.Optional[float] = None center_of_mass: typing.Optional[typing.List[float]] = None inertia_tensor: typing.Optional[typing.List[float]] = None use_gravity: typing.Optional[bool] = None collision_detections: typing.Optional[str] = None )
Parameters
-
joint_type (
str
) — The type of articulation (aka joint) to use.- “fixed”: no movement allowed
- “prismatic”: only translation along 1 axis allowed
- “revolute”: only rotation along 1 axis allowed
-
anchor_rotation (
List[float]
, optional, defaults to[0.0, 0.0, 0.0, 1.0]
) — The rotation axis along which the asset is allowed to move relative to its parent (translation or rotation). -
anchor_position (
List[float]
, optional, defaults to[0.0, 0.0, 0.0]
) — Position of the anchor point of the joint. -
immovable (
bool
, optional, defaults toFalse
) — IfTrue
, the asset will not be affected by physics. -
linear_damping (
float
, optional, defaults to0.0
) — The linear damping of the joint. -
angular_damping (
float
, optional, defaults to0.0
) — The angular damping of the joint. -
joint_friction (
float
, optional, defaults to0.0
) — The friction of the joint. -
drive_stiffness (
float
, optional, defaults to0.0
) — The stiffness of the joint drive. -
drive_damping (
float
, optional, defaults to0.0
) — The damping of the joint drive. -
drive_force_limit (
float
, optional, defaults to0.0
) — The force limit of the joint drive. -
drive_target (
float
, optional, defaults to0.0
) — The target of the joint drive. -
drive_target_velocity (
float
, optional, defaults to0.0
) — The target velocity of the joint drive. -
upper_limit (
float
, optional, defaults to None) — The upper limit of the joint. -
lower_limit (
float
, optional, defaults to None) — The lower limit of the joint. -
mass (
float
, optional, defaults to1.0
) — The mass of the body. -
center_of_mass (
List[float]
, optional, defaults to[0.0, 0.0, 0.0]
) — The center of mass of the body. -
inertia_tensor (
List[float]
, optional, defaults toNone
) — The inertia tensor of the body. -
use_gravity (
bool
, optional, defaults toTrue
) — IfTrue
, the body will be affected by gravity. -
collision_detections (
str
, optional, defaults toNone
) — The collision detection mode to use.
An articulation body will model the physics of an articulation body connecting together an asset with its parent in the hierarchy. For prismatic joints, the direction of travel in the backend is X, so we use anchor_rotation to set the position in space.