MPITrajectory
Definition
typedef struct MPITrajectory { double velocity; double acceleration; double deceleration; double jerkPercent; double accelerationJerk; double decelerationJerk; } MPITrajectory;
Description
MPITrajectory contains the motion profile parameters for simple point to point type motion.
NOTE: Not all firmware binaries support S_CURVE_JERK and VELOCITY_JERK motion types due to code space limitations. mpiMotionStart(...) returns MPIMotionMessagePROFILE_NOT_SUPPORTED if the controller does not support the requested move type.
velocity | Rate of change of position. Specifies the constant slew rate for S_CURVE, TRAPEZOIDAL, S_CURVE_JERK, VELOCITY, and VELOCITY_JERK motion types. Units are counts per second. |
---|---|
acceleration | Rate of change of velocity. Specifies the initial ramp to reach constant velocity for TRAPEZOIDAL and VELOCITY motion types. Also, specifies the ramp from the initial jerk to the next jerk before constant velocity for S_CURVE, S_CURVE_JERK and VELOCITY_JERK motion types. Units are counts per second * second. |
deceleration | Rate of change of velocity. Specifies the final ramp to reach zero velocity for TRAPEZOIDAL motion types. Also, specifies the ramp from the jerk after constant velocity to the final jerk for S_CURVE and S_CURVE_JERK motion types. Not applicable for VELOCITY and VELOCITY_JERK motion types. Units are counts per second * second. |
jerkPercent | Portion of acceleration and deceleration ramp to perform jerk profile for S_CURVE, VELOCITY, S_CURVE_JERK, and VELOCITY_JERK motion types. Units are in percent. Range is 0.0 to 100.0. |
accelerationJerk | Rate of change of acceleration. Specifies the initial jerk rates to reach constant velocity for S_CURVE_JERK and VELOCITY_JERK motion types. Units are counts per second * second * second. |
decelerationJerk | Rate of change of deceleration. Specifies the final jerk rate to reach zero velocity for S_CURVE_JERK motion types. Not applicable for VELOCITY and VELOCITY_JERK motion types. Units are counts per second * second * second. |
Sample Code
MPITrajectory trajectory; mpiAxisTrajectory(axis, &trajectory); printf("Velocity %.3f\n" "Acceleration %.3f\n", trajectory.velocity, trajectory.acceleration);