Skip to content

Factory

firepick1 (localhost) edited this page Mar 5, 2017 · 10 revisions

Creating a Kinann network

There are many ways to create a Kinann [network]. The easiest way is to use the Kinann Factory class.

Methods

Factory(vars,options={})
Create a Kinann network factory with the given input variables. Most variables will correspond to robot drive axis or real world planning coordinates. However, variables can also be used for other critical state inputs that affect posiioning. For example, you can represent drive backlash as [-1,+1] binary input variables.
var axes = [
    { minPos: 0, maxPos: 300 }, // x-axis
    { minPos: 0, maxPos: 200 }, // y-axis
    { minPos: 0, maxPos: 100 }, // z-axis
    { minPos: 0, maxPos: 360 }, // a-axis
    { minPos: -1, maxPos: 1 }, // x-axis movement direction
    { minPos: -1, maxPos: 1 }, // y-axis movement direction
    { minPos: -1, maxPos: 1 }, // z-axis movement direction
]
var factory = new Factory(axes);
Factory.prototype.createNetwork = function(options={})
Create a linear neural network pre-trained for the identity transform (i.e., output = input). Identity networks are ideal for calibration since they are quickly re-trained to correct measured error. You can also customize createNetwork() method to create quadratic networks, networks with custom transforms, etc.
Factory.prototype.inverseNetwork = function(network, options={})
Create a neural network trained to be the inverse function of the given network. The inverse network implements kinematic error correction.
Factory.prototype.createExamples = function(options={})
Create KNN training examples. By default, createExamples() will create training examples for a linear network that models the identity transform. You can also create examples for custom transforms and polynomial neural networks. Note that higher order polynomials do require more examples, which complicates calibration. Use linear neural networks when possible.

Clone this wiki locally