SuperDex Physics C++ API
Loading...
Searching...
No Matches
superdex::ArticulatedJointParams Struct Reference

Parameters describing a single joint within an articulated actor. More...

#include <mochi_structs.h>

Inheritance diagram for superdex::ArticulatedJointParams:
superdex::prefab::ArticulatedJointPrefab

Public Member Functions

bool operator== (ArticulatedJointParams const &) const =default

Public Attributes

Real3 axis = {}
 Local axis of motion for the joint, in the joint's local frame.
ArticulatedJointFrictionParams friction
 Joint friction parameters.
std::optional< realinertia
 Joint inertia coefficient.
real limitDamping = 0_r
 Damping coefficient [N·s/m or N·m·s/rad] for the joint limit constraints.
real limitStiffness = 100_r
 Stiffness coefficient [N/m or N·m/rad] for the joint limit constraints.
std::optional< Real3maxLimit
 Maximum joint limits for each DoF.
std::optional< Real3minLimit
 Minimum joint limits for each DoF.
DynamicString name
 Joint name.
TransformRT parentLinkFromJoint
 Rotation and translation of the joint with respect to the parent link.
ArticulatedJointType type = ArticulatedJointType::Invalid
 Joint type.

Detailed Description

Parameters describing a single joint within an articulated actor.

Each joint connects a link to its parent in the kinematic tree. Joints are referenced positionally — the i-th entry of ArticulatedActorParams::joints corresponds to the joint connecting the i-th link to its parent. Cycle-closing joints are declared separately via ArticulatedActorParams::cycles.

See also
ArticulatedActorParams, ArticulatedLinkParams, ArticulatedJointType

Definition at line 184 of file mochi_structs.h.

Member Function Documentation

◆ operator==()

bool superdex::ArticulatedJointParams::operator== ( ArticulatedJointParams const & ) const
default

Member Data Documentation

◆ axis

Real3 superdex::ArticulatedJointParams::axis = {}

Local axis of motion for the joint, in the joint's local frame.

Note
Only used for ArticulatedJointType::Prismatic and ArticulatedJointType::Revolute joints. Ignored (and reset to zero) for other joint types.
For Prismatic/Revolute joints, must be non-zero and finite. The vector is automatically normalized to unit length on actor creation.

Definition at line 188 of file mochi_structs.h.

◆ friction

ArticulatedJointFrictionParams superdex::ArticulatedJointParams::friction

Joint friction parameters.

Note
Ignored for ArticulatedJointType::Free and ArticulatedJointType::Hard joints.

Definition at line 189 of file mochi_structs.h.

◆ inertia

std::optional<real> superdex::ArticulatedJointParams::inertia

Joint inertia coefficient.

Units are [kg] for translation DoFs and [kg·m²] for rotation DoFs.

Note
Default is zero joint inertia.
Ignored for ArticulatedJointType::Free and ArticulatedJointType::Hard joints.

Definition at line 190 of file mochi_structs.h.

◆ limitDamping

real superdex::ArticulatedJointParams::limitDamping = 0_r

Damping coefficient [N·s/m or N·m·s/rad] for the joint limit constraints.

Note
Ignored for joints without limits.

Definition at line 194 of file mochi_structs.h.

◆ limitStiffness

real superdex::ArticulatedJointParams::limitStiffness = 100_r

Stiffness coefficient [N/m or N·m/rad] for the joint limit constraints.

Note
Ignored for joints without limits.

Definition at line 193 of file mochi_structs.h.

◆ maxLimit

std::optional<Real3> superdex::ArticulatedJointParams::maxLimit

Maximum joint limits for each DoF.

Units are [m] for translation DoFs and [rad] for rotation DoFs.

For 1D joints, limits must be defined by multiplying the scalar max limits by the joint axis. For 3D joints, each component must define the limit along one of the axes of the joint.

Note
The definition of joint limits for spherical joints may be complex, and it may be easier to model them as 3 co-located revolute joints.

Definition at line 192 of file mochi_structs.h.

◆ minLimit

std::optional<Real3> superdex::ArticulatedJointParams::minLimit

Minimum joint limits for each DoF.

Units are [m] for translation DoFs and [rad] for rotation DoFs.

For 1D joints, limits must be defined by multiplying the scalar min limits by the joint axis. For 3D joints, each component must define the limit along one of the axes of the joint.

Note
The definition of joint limits for spherical joints may be complex, and it may be easier to model them as 3 co-located revolute joints.

Definition at line 191 of file mochi_structs.h.

◆ name

DynamicString superdex::ArticulatedJointParams::name

Joint name.

Must be unique among joints of the same articulated actor.

Note
If left empty, a unique default name (e.g., "joint_0", "joint_1", ...) is assigned automatically.

Definition at line 185 of file mochi_structs.h.

◆ parentLinkFromJoint

TransformRT superdex::ArticulatedJointParams::parentLinkFromJoint

Rotation and translation of the joint with respect to the parent link.

Definition at line 187 of file mochi_structs.h.

◆ type

ArticulatedJointType superdex::ArticulatedJointParams::type = ArticulatedJointType::Invalid

Joint type.

Note
Default ArticulatedJointType::Invalid is a sentinel. The user must overwrite it.
ArticulatedJointType::Cycle is reserved for cycle-closing joints. Use ArticulatedActorParams::cycles for cycle joints.
Static links can be modeled using a ArticulatedJointType::Hard joint whose parent is either -1 or another static link.

Definition at line 186 of file mochi_structs.h.


The documentation for this struct was generated from the following files: