anglejog - Jog two axes (or joints) at an angle
This component accepts a dynamic counts-in input (typically from a manual pulse
generator (MPG)) and static angle and scale factor settings. It computes the
counts and scale values required to jog two (M,N) axes (or joints) at an
angle. The corresponding output pins must be connected to the candidate
axis.[MN].jog* (or joint.[MN].jog*) pins to create motion at the current
angle. Hal pins are provided to set the vector velocity and acceleration and
to enable the computations.
Notes:
1. The max-vel, max-accel settings should be
less than or equal to
the smallest settings for both of the target axes.
2. The scale-in pin is sampled only when the enable-in pin is false. The value
in use is output on the current-scale pin.
3. The angle-degrees-in pin is sampled only when the enable-in pin is false. The
value in use is output on the current-angle-degrees pin.
4. The value of the iscale-factor pin multiplies counts-in internally to support
integer (s32) calculations for counting. The current-scale-out is divided by
the same amount. The pin is sampled only when the enable-in pin is false. The
default value should work in most applications.
5. For identity kins machines that support both world jogging (axis letter) and
joint jogging (joint number), connections are needed for both the axis pins:
axis.[MN].jog-enable,jog-scale,jog-counts and the corresponding joint pins:
joint.[mn].jog-enable,jog-scale,jog-counts where [mn] are the joint numbers
corresponding to the [MN] axis letters. 6. The current-scale pin is for
information, the required output scaling pin is current-scale-out as it
depends on the iscale-factor setting.
Simulation Config: configs/sim/axis/anglejog/anglejog.in
-
anglejog.N (requires a floating-point
thread)
-
- anglejog.N.enable-in bit in
- enables motion (disables alteration of angle and
scale)
- anglejog.N.counts-in s32 in
- MPG (wheel) counts
- anglejog.N.angle-degrees-in float in
- vector angle
- anglejog.N.iscale-factor s32 in (default:
10000)
- integer scaling factor (>1)
- anglejog.N.scale-in float in
- magnitude units/count (mag = counts * scale)
- anglejog.N.max-vel float in
- vector max velocity magnitude
- anglejog.N.max-accel float in
- vector max acceleration magnitude
- anglejog.N.accel-fraction-in float in
(default: 1)
- acceleration fraction input
- anglejog.N.enable-out bit out
- to: axis.M.jog-enable AND axis.N.jog-enable
- anglejog.N.current-scale float out
- effective scale (informational)
- anglejog.N.current-scale-out float out
- to: axis.M.jog-scale AND axis.N.jog-scale
- anglejog.N.coscounts s32 out
- to: axis.M.jog-counts (cosine counts)
- anglejog.N.sincounts s32 out
- to: axis.N.jog-counts (sine counts)
- anglejog.N.cos-accel-fraction float out
- to: axis.M.jog-accel-fraction
- anglejog.N.sin-accel-fraction float out
- to: axis.N.jog-accel-fraction
- anglejog.N.active bit out
- angle jog move in progress
- anglejog.N.current-angle-degrees float out
- current angle
- anglejog.N.current-mag float out
- current vector magnitude
- anglejog.N.current-vel float out
- current vector speed
Dewey Garrett
GPL