Skip to content

Transformed Axes

markmaker edited this page Jan 19, 2022 · 16 revisions

What is it?

Transformed axes take one Machine Axis as input and transform the coordinate into a new one. We are discussing these transformations as forward transformations here, in the sense as they are happening mechanically, from the raw actuator (motor) coordinate to the target coordinate for the machine component that is moved.

But of course, OpenPnP will internally also derive the reverse transformations, from the desired target coordinate for the machine component to be moved, back to the raw coordinate of the actuator (motor). However, you need not concern yourself with those (sometimes difficult) reverse transformations.

ReferenceMappedAxis

The ReferenceMappedAxis can take two coordinate points A and B on the input axis and map those to two corresponding output coordinate points. Any input coordinate is then proportionally interpolated/extrapolated using these two map points.

Using the ReferenceMappedAxis, you can scale, offset, negate or reverse any axis (and more).

Create an Axis

Create an axis in the Machine Setup tab.

Create Mapped Axis

Properties

ReferenceMappedAxis

Type and Name are the same as in the ReferenceControllerAxis.

The Type will restrict the input axes to the same Type i.e. only the coordinates are mapped, the geometric axis itself (dimension in space) remains the same.

Axis Mapping

Input Axis denotes the axis where the raw input coordinate is taken from.

Map Point A and Map Point B define the two mapped coordinate points. To explain let's make a few examples:

Negate an Axis

The zero point (origin) of the axis remains the same, but the unit 1 is mapped to unit -1, so proportionally any coordinate is mapped to its negative value.

Negate

This mapping can be used for a Rack&Pinion shared Z axis a.k.a. "Peter's Head". If one Nozzle goes up (+Z), the other goes down (-Z).

Peters Head

Image: Pick and place head dual nozzle by Betz Technik.

Reverse an Axis

If for some reason you have an axis that goes the wrong way, you can reverse it by mapping the axis coordinate maximum to the coordinate minimum and vice versa. The coordinates stay positive.

Reverse Axis

Offset an Axis

The following example adds 100mm to all the raw axis coordinates:

Offset Axis

Scale an Axis

As a fantasy example, assume you have salvaged a controller from a printer that works in Twips. We therefore need to map 1440 twips to one inch but in the Driver's length unit Millimeters (25.4mm):

Scaled Axis

ReferenceCamCounterClockwiseAxis

The ReferenceCamCounterClockwiseAxis is used to transform shared Z axis that work in a seesaw or rocker configuration.

Cam Counter-Clockwise

Type and Name are the same as in the ReferenceControllerAxis.

The Type will restrict the input axes to the same Type i.e. only the coordinates are mapped, the geometric axis itself (dimension in space) remains the same.

Input Axis denotes the axis where the raw input coordinate is taken from.

Cam Radius is the important parameter of this transformation. It defines the leverage with which the angular motion of the motor translates into the linear motion of the two nozzles that are typically attached to precision linear rails. One nozzle is pressed down, while the other is typically pulled up using a spring.

Cam Arms Angle defines the angle between the two arms. Normally, a 180° angle is used for straight-across arms. If the angle is 0°, it describes a one-armed design that always only pushes one side i.e nozzle at a time. Other "V-shaped" arms angles could be used to describe designs, that eliminate dead-time, that the 0° one-armed design has.

Cam Wheel Radius and Cam Wheel Gap (⚠️ deprecated) are physical properties of the mechanics. However, they both just add a constant offset to the transformation. Because we relate the target Z coordinate to the nozzle tip rather than the nozzle back (where the cam wheel pushes it), such an offset is not purposeful and you will simply end up compensating for it in the nozzle offset.

⚠️ It is highly recommended to leave both Cam Wheel Radius and Cam Wheel Gap at zero.

ReferenceCamClockwiseAxis

The ReferenceCamCounterClockwiseAxis is really easy. It just takes its sibling ReferenceCamCounterClockwiseAxis as input, the actual transformation is already parametrized there.

Cam Clockwise

Using the Transformed Axis

The created axis can now be used like a physical axis when it comes to Mapping Axes.


Advanced Motion Control Topics

Motion Control

Machine Axes

General

Clone this wiki locally