List all kinematic variables associated with frame pairs
frameVariables( lists the kinematic
variables currently defined in the
ks to capture the transforms between frame pairs. The frame pairs are
specified when creating the variables. They can be from anywhere in the model and often
comprise frames not directly connected by joints.
MATLAB outputs a table with the frame variables in rows. Each row gives the ID of a variable, the base frame against which its transform is defined, the follower frame which the transform describes, and the unit for its numerical value.
KinematicsSolver objects start without frame variables. The table is
initially empty and it remains so until populated with variables created from frame pairs.
addFrameVariables object function
to create those variables. Use
removeFrameVariables to drop
variables no longer relevant for analysis, and
clearFrameVariables to drop all
frame variables in one call.
The same pair of frames can give rise different variables. These are generally bundled
into a group specific to the pair. Groups are sorted by name, with variables in each group
being ranked by transform type and component. The variables are correspondingly named
The group name is the string given to the
function at the time the variables were created. The transform type is either translation or
rotation. The transform component is x, y, or
z. A group named
Hand with the translation
components between frames would have for its frame variables
Frame variables can be assigned as targets, guesses, and outputs during analysis. As targets, they help to specify the multibody configuration for which to solve the unknown variables. As guesses, they serve to bias the solver toward one of equally plausible solutions—for example, to ensure that the elbow of a humanoid robot does not hyperextend. As outputs, they add to the list of unknowns to determine.
ks — Kinematics solver object
KinematicsSolver object is the representation of a Simscape
Multibody model used for kinematic analysis.
Example: ks = simscape.multibody.KinematicsSolver('sm_double_pendulum')