Skip to contents

Constructs a per-frame right-handed orthonormal coordinate system for each named body segment (e.g. pelvis, thigh/femur, shank/tibia, foot) from three markers: a proximal end, a distal end, and a lateral marker. The axes are X (antero-posterior), Y (long axis, pointing proximally) and Z (medio-lateral). These segment frames are the input to groodSuntayAngles and to the Grood-Suntay / ISB conventions of calculateJointAngles.

Usage

jointCoordinateSystem(pe, segments)

Arguments

pe

A PhysioExperiment with "position_x", "position_y" and "position_z" assays.

segments

A named list; each element is a list with proximal, distal and lateral marker names (columns of the position assays).

Value

A named list of n_frames x 3 x 3 arrays (one per segment); for each the three columns are the X (AP), Y (long) and Z (ML) unit axes.

References

Grood ES, Suntay WJ (1983). "A joint coordinate system for the clinical description of three-dimensional motions." J Biomech Eng, 105(2), 136-144. Wu G, et al. (2002, 2005). "ISB recommendation on definitions of joint coordinate systems." J Biomech.

Examples

demo <- demoMoCapData(seed = 1)
jcs <- jointCoordinateSystem(demo$mocap,
  segments = list(shank_r = list(proximal = "Knee_R",
                                 distal = "Ankle_R", lateral = "Toe_R")))
names(jcs)
#> [1] "shank_r"