SA Machine contains all of the features of SA Ultimate+ Native CAD, but also allows interfacing with robots and CNC machines. This permits calibration and compensation of robots and large volume CNC machines to high degrees of accuracy.
Usually, robots are delivered by the manufacturer with default kinematic models that are accurate, to on the order of, about 1/2 - 1/4 inch (10 to 15mm). This depends on the manufacturer, product, calibration level, and other factors. CNC machines (especially large-volume machines) can also encounter the same sorts of issues (although they are usually more accurate). Regardless, this default accuracy is nowhere near what's necessary for precision applications. There are several reasons for this. One might be that the manufacturer's kinematic model is not quite right or doesn't incorporate things like the stiffness of the linkages or the weights of tools on the machine very well (if at all).
SA's Robot and Machine calibration functions have a few purposes. The first benefit is that they can be used to calculate a significantly more accurate kinematic model than is provided by the manufacturer by default. The following discussion will refer to robots, but it applies equally well to CNC machines.
To calculate a new kinematic model, a robot is commanded to go to a set of poses throughout the desired volume of use and whose positions in the robot controller's coordinates are known. For each pose, measurements are taken on the robot's end effector to determine the actual position of the tool compared to where it was "asked" to go. These measurements can be taken with a single measurement from a 6-DOF measurement device, or they can be taken by measuring 3 targets with a 3-DOF measurement device. (Any measurement method that results in 6-DOF information can be used, including photogrammetry).
Once a set of commanded positions and measured "actual" positions are determined, SA uses this data and runs through a series of kinematic algorithms to determine an accurate kinematic model for the specific robot (machine) of interest within the working volume you calibrate for. Using this kinematic model, any position that you'd like to send the robot to is first backed through this kinematic model to give the controller a new set of positions. In other words, based on the calculated kinematic model, SA Machine tells the controller where the robot ought to go (based on its kinematics) to end up where you want it to be. This results in a drastically improved result. Although this is a big improvement, it can be taken a step further.
Now that the robot has gone where we think it should go, the end-effector can be measured again, which tells us where the robot actually went compared to where we expected it to be. We can then iterate through the kinematic model to give a small correction to the robot, getting it even closer to the desired target. We have demonstrated accuracies to about 0.001"-0.002" using this method, which is quite accurate for a robot. Given the accuracy of the encoders on the robot's servos, this can't be beat without more accurate hardware encoders. This process is a great way to position tools and other items with very high accuracy / repeatability.