LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

A listing of commonly used LinuxCNC terms and what they mean. Some terms have a general meaning as well as more specialized meanings for users, installers, and developers. (Enter new terms in alphabetical order)

Axis [search wiki]

One of the computer control movable parts of the machine. For a typical vertical mill, the table might be the X axis, the saddle the Y axis, and the quill, head, or knee the Z axis. Additional linear axes parallel to X, Y, and Z are called U, V, and W respectively. Angular axes like rotary tables are referred to as A, B, and C where A rotates around the X, B rotates around Y and C rotates around Z. Lathe configurations can be named in other creative ways where B might be motion of a second spindle toward or away from the spindle, parallel to the lathe's z axis. Often a C axis for a lathe is angular control of the spindle for live tooling mill operations.

Backlash [search wiki]

The amount of "play" or lost motion that occurs when direction is reversed in a lead screw [Leadscrew]. or other mechanical motion driving system. It can result from nuts that are loose on leadscrews, slippage in belts, cable slack, "wind-up" in rotary couplings, and other places where the mechanical system is not "tight". Backlash will result in inaccurate motion, or in the case of motion caused by external forces (think cutting tool pulling on the work piece) the result can be broken cutting tools. This can happen because of the sudden increase in chip load on the cutter as the work piece is pulled across the backlash distance by the cutting tool.

Backlash Compensation [search wiki]

Any technique that attempts to reduce the effect of backlash without actually removing it from the mechanical system. This is typically done in software in the controller. This can correct the final resting place of the part in motion but fails to solve problems related to direction changes while in motion (think circular interpolation) and motion that is caused when external forces (think cutting tool pulling on the work piece) are the source of the motion. The LinuxCNC has a software backlash compensation routine available.

BDI [search wiki]

Brain Dead Install. Refers to a method to install LinuxCNC. The BDI comes on a CD rom (or a downloaded image of one) and installs a complete Linux operating system with the correct patches and LinuxCNC code pre-configured. There is even a BDI-Live version that runs directly from the CD without installing anything on the computer.

Cartesian [search wiki]

Named after its inventor, Rene Descartes, the cartesian coordinate system is made up of a grid of vectors at right angles. Position is specified with three vectors, X, Y, and Z. Rotation can be specified as A,B,C movement around X,Y,Z or can be specified as R,P,W (roll, pitch, Yaw) like a tool or part flying within the XYZ space. The "world coordinates" reference frame is an example of a cartesian coordinate system.

CNC [search wiki]

Computer Numerical Control. The general term used to refer to computer control of machinery. Instead of a human operator turning cranks to move a cutting tool, CNC uses a computer and motors to move the tool, based on a part program.

Coordinated motion

Coordinated motion is the setting of speeds on multiple joints such that the tool follows the designated path. This is more of an issue with closed-loop systems using non-trivial kinematics.

Classic Ladder [search wiki]

ClassicLadder is a type of programming language originally implemented on industrial PLC's (it's called LadderProgramming).

Feedrate [search wiki]

The speed at which a motion occurs. In manual mode, jog speed can be set from the graphical interface. In auto or mdi mode feedrate is commanded using a (f) word. F10 would mean ten units per minute.

Feedrate Compensation

Feedrate compensation occurs when a servo or other closed-loop actuator is unable to keep up with the commanded velocity. The motion controller must then slow down (or speed up!) coordinated motion in order to stay on the toolpath.
Another definition might be: when measured spindle current exceeds a certain value (indicating excessive torque on the tool) the planner must slow down feedrate to prevent overheating or tool breakage.
Currently not implemented in LinuxCNC. We should decide on one of these definitions, and stick to it, and come up with a new term for the losing definition.

Feedrate Override [search wiki]

A manual, operator controlled change in the rate at which the tool moves while cutting. Often used to allow the operator to adjust for tools that are a little dull, or anything else that requires the feed rate to be "tweaked".


The generic term used to refer to the most common part programming language. There are several dialects of G-code, LinuxCNC uses RS274/NGC.

Home Position

Home position is usually, but not always, the origin (0,0,0) of both world coordinates and machine coordinates. Home position is usually calibrated by advancing a joint until a switch is tripped, then backing off of the switch and recording the position at which an index pulse is sensed. The position (in joint coordinates) is stored in home_offset, and then the machine moves to the position defined

Joint Coordinates [search wiki]

The joint's coordinates are numbers that specify the current location of a single moving part of a machine, for instance a linear slide. In the case of a linear joint they are the distance along the slideway. In the case of a rotary joint they are the angle around the joint. When all joint coordinates are taken together and passed through the kinematic maths, the cartesian "pose" of the machine can be determined or commanded.

Kinematics [search wiki]

A kinematic analysis of a mechanical system specifies topology, degrees of freedom (DoFs), motions, and constraints, without specification of applied forces/torques or the mass properties of the bodies. [www.mathworks.com]

The position relationship between world coordinates and joint coordinates of a machine. There are two types of kinematics. Forward kinematics is used to calculate world coordinates from joint coordinates. Inverse kinematics is used for exactly opposite purpose. Note that kinematics does not take into account, the forces, moments etc. on the machine. It is for positioning only -- it does not compute forces required to achieve a pose or a change in pose.

MDI = Manual Data Input

This is a mode of operation where the controller executes single lines of G-code as they are typed by the operator.

NML = Neutral Messaging Language

NML is a part of the NIST Realtime Control Library, and is used to communicate between the parts of LinuxCNC.

PLC = Programmable Logic Controller

These are devices made by all the industrial controls manufacturers to handle custom processing tasks that were previously handled mostly with electromechanical relays, time-delay relays, etc. This might be used to handle a toolchanger, for instance, where LinuxCNC would output a signal to change tools, and the PLC (software or hardware) would open and close relay outputs based on time delays and external events as the changer moves through its steps, and then signal LinuxCNC that the requested tool is now in place. LinuxCNC comes with a "software PLC" called ClassicLadder that implements most of the functionality of a real PLC.

Pose [search wiki]

"The attitude or position of a person; the position of the body or of any member of the body; especially, a position formally assumed for the sake of effect; an artificial position; as, the pose of an actor; the pose of an artist's model or of a statue." [1913 Webster]

The Enhanced Machine Controller uses mathematical definitions of machine pose (Kinematics) to compute the movement of joints in order to effect a change from one pose to another. In a Cartesian machine a change in the X axis only will change the pose or location of a tool on the YZ plane. Robot machine tools, Stewart Platforms, or stacked rotary elements, may require complex computations to effect a change from one pose to another.

Consider holding a hand drill and moving it so that it creates a hole at a specific angle to a surface. The initial pose is the whole of the person and drill poised near the desired location with the drill bit at or near the angle desired for the final hole. A correct pose at the finish depth of the hole shows the perfect allignment between the axis of the hole and the axis of the drill bit. The intermediate poses form a very complex set of motions of all of the individual joints. An incorrect ending pose shows the drill bit broken off in the hole and some, possibly interesting set of subsequent poses by the person.


A move at the maximum velocity defined in the [TRAJ] section of the .ini file, equivalent to a G0 command.

Real-time [search wiki]

Software that is intended to meet very strict timing deadlines. Under Linux, in order to meet these requirements it is necessary to find or compile a Linux kernel that uses RTAI or RTLINUX extensions. The real-time requirements of LinuxCNC motion control requires that some of our modules run in kernel-space.

Reference frame

A frame of reference in physics provides a set of axes relative to which the position, motion, and orientation of objects within a system can be measured. See "world coordinates".

RTAI [search wiki]

Real Time Application Interface. See [RTAI Site], one of two real-time extensions for Linux that LinuxCNC can use to achieve real-time [real-time] performance. This API is used for most of the newer kernels and for recent BDI's.

RTLINUX[search wiki]

Real Time Application Interface. See [RTLINUX Site], one of two real-time extensions for Linux that LinuxCNC can use to achieve real-time [real-time] performance. This API was used for the first tests and most early installs of the LinuxCNC. It is the API used for the BDI-2xx series of disks.

VFD = Variable Frequency Drive

This device is commonly used to vary the speed of a 3-phase motor. They can also be used to run 3-phase motors from single-phase power mains.

World Coordinates [search wiki]

This is the absolute, unchanging cartesian coordinate system for machine pose. It gives coordinates in terms of a fixed reference frame that is attached to some point (generally home position) of the physical machine tool. Also known as the "absolute coordinate system".

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited January 20, 2012 10:17 pm by CNCDreamer (diff)
Published under a Creative Commons License