Moment of Inertia

The Measure Moment of Inertia command measures an XBot's inertia about a single axis by exciting that axis:

  • X / Y / Z (linear axes) → mass [kg]

  • Rx / Ry / Rz (rotational axes) → moment of inertia [kg·m²]

The measurement runs while the function block is Busy and completes on Done (success) or Error (failure).

Only one XBot is measured at a time

Function Blocks

Command

Purpose

Measure Moment of Inertia

Start and run a measurement. Read the value afterwards with PMC_QueryMomentofInertia.

Measure Moment of Inertia Async

Start and run a measurement and return the result on the same block (adds the MomentofInertia output).

Query Moment of Inertia

Read the state and result of an XBot's measurement.

Result States

MeasurementState (output on every block):

Value

State

Meaning

0

idle

No measurement has been started for this XBot.

1

in progress

Measurement running; result not yet available.

2

done

Measurement finished; MomentofInertia is valid.

3

failed

Measurement aborted due to an error.

Operating Conditions

  • Precondition: the target XBot must be idle at a stable location, and no other XBot may be under measurement. Starting again for the XBot already in progress is a no-op success; a request for a different XBot is rejected (WRONG_STATE).

  • During: the XBot is locked for the duration of the excitation — user motion commands to that XBot are blocked so they cannot disturb.

  • Postcondition: the XBot is released (whether the measurement completes or fails), the function block reports Done/Error, and on success the measured value is available (the MomentofInertia output of the Async block, or via PMC_QueryMomentofInertia).

Notes

  • The excitation frequency is fixed by the controller and is not an input; only the magnitude is adjustable, and it is capped per axis: 10 N for X/Y/Z, 1 N·m for Rx/Ry/Rz. A magnitude of 0 selects the controller default.