BB.Robot.Joint (bb v0.4.0)
View SourceAn optimised joint representation with all units converted to SI floats.
Joints connect a parent link to a child link and define the kinematic relationship between them.
Summary
Types
Joint axis of rotation/translation as a normalised unit vector {x, y, z}.
Joint dynamics parameters.
Joint limits.
Joint origin transform from parent to child frame.
Functions
Check if this joint is linear (prismatic).
Check if this joint has any degrees of freedom.
Check if this joint is rotational (revolute or continuous).
Types
Joint axis of rotation/translation as a normalised unit vector {x, y, z}.
Joint dynamics parameters.
damping: viscous damping coefficient- For revolute: N·m·s/rad
- For prismatic: N·s/m
friction: Coulomb friction- For revolute: N·m
- For prismatic: N
@type joint_type() ::
:revolute | :continuous | :prismatic | :fixed | :floating | :planar
@type limits() :: %{ lower: float() | nil, upper: float() | nil, velocity: float(), effort: float() }
Joint limits.
For revolute/continuous joints:
lower/upper: angle limits in radiansvelocity: max angular velocity in rad/seffort: max torque in N·m
For prismatic joints:
lower/upper: position limits in metersvelocity: max linear velocity in m/seffort: max effort in N·m (as defined in DSL)
@type origin() :: %{ position: {float(), float(), float()}, orientation: {float(), float(), float()} }
Joint origin transform from parent to child frame.
position: {x, y, z} translation in metersorientation: {roll, pitch, yaw} rotation in radians (XYZ Euler angles)
Functions
Check if this joint is linear (prismatic).
Check if this joint has any degrees of freedom.
Check if this joint is rotational (revolute or continuous).