Robot homing overview

For absolute encoders, each encoder vendor typically has their own unique procedures for transmitting the absolute position information.  These procedures are a combination of special hardware interfaces and custom software protocols.  Precise currently supports several different absolute encoder types and will add additional encoder types as needed.

For incremental encoders, the Guidance controller supports an extensive set of homing methods that utilize various combinations of a homing switch, over-travel limit switches, encoder index pulses, and hard limit stops. In general, the homing methods drive the motor at a predetermined slow speed until a limit switch is detected or a home switch changes state. Then the direction of travel is reversed until the zero index pulse of the encoder is detected.  Please note, the homing methods all operate in encoder counts, not joint or Cartesian coordinates.  Therefore, a method that performs a negative motion moves the axis in the direction of decreasing encoder counts, which may be opposite to the joint coordinate direction depending upon how the axis is configured.

The Guidance controller supports all 33 homing methods for incremental encoders that are defined in the CANopen specification, CiA DSP 402 V 2.0, July 26, 2002. In addition, four methods based on hard limits stops are provided.

For both absolute and incremental encoders, each motor must be assigned a specific homing method.  Each of these methods is described in detail in a later section.  In addition, there are a number of other homing parameters that must be defined.  These homing parameters are all stored in the Parameter Database and are briefly summarized in the following tables.  For more information on these parameters, please see the Software Reference section.

Robot Specific General Homing Parameters.  This table contains the homing parameters that are defined for each robot.

Parameter Database ID Parameter Name Description

2800

Robot homed

A Boolean that is automatically set TRUE when all of the motors of the robot have been successfully home.

2801

Robot homed DOUT

The channel number of an optional digital output signal whose value will track that of “Robot homed”.

2802

Homing sequence

A parameter that specifies if a robot's motors are to be serially (0 or 2) homed or simultaneously (1) homed.  If motors are homed serially, they can be executed sequentially (0) or in a specified non-sequential order (2).  If mode 2 is selected, the order is defined by the "Homing order" (DataID 2810) array of motor numbers. Simultaneous homing executes more quickly but may not be possible for some systems due to obstructions in the workspace.

2803

Homing method

An array of numbers that specifies the homing method for each motor. The possible homing methods are described in the following sections.

2804

Homing speed 1, ecnts/sec

An array of the maximum motor speeds to be used during the homing sequence, one speed for each motor of the robot.

2805

Homing speed 2, ecnts/sec

An array of very slow speeds for each motor. This is not required or utilized by the Guidance system due to the capabilities of the control hardware and is only provided for compatibility with the CANopen specification.

2807

Motor homing accel, ecnts/sec^2

An array of the motor accelerations used during the homing process, one value for each motor of the robot.

2809

Commutate during homing

This flag is set TRUE if each motor is to be commutated just before it is homed.  If this flag is set to FALSE, the motors are all commutated the first time that robot power is enabled after the controller has been restarted.

2810

Homing order

If the "Homing sequence" (DataID 2802) is set to mode 2, this array of motor numbers defines the order in which the motors are homed.  Motor number start at 1 and a zero value marks the end of the list.  Groups of motors that should be home simultaneously can also be specified.

2811

Signal axis homing DOUT

During the homing operation, if a motor has a digital output signal specified in this parameter, the output signal is asserted just prior to the start of the homing operation for the motor.  The homing operation never clears the specified output signal.

2812

Wait to home axis DIN

During the homing operation, if a motor has a digital input signal specified in this parameter, the homing operation for the motor will be delayed until the specified signal is TRUE.  If the delay exceeds the timeout value specified by the "Timeout on home axis" (DataID 2813), the homing operation will be aborted.

2813

Timeout on home axis, sec

If a digital input specified by the "Wait to home axis DIN" (DataID 2812) parameter is not TRUE within this allotted number of seconds, the homing operation is terminated and an error is generated.

2814

Move to home safe position

If a value in this array is set to TRUE, the corresponding motor is moved to the specified "Homing safe position" (DataID 2815) as soon as the motor is homed and before the next motor in the homing sequence begins its homing operation.  This feature can be used to reposition axes during the homing sequence to avoid obstacles.

2815

Homing safe position, enc cnts

If a value in the "Move to home safe position" (DataID 2814) array is TRUE, the corresponding value in this array defines the motor position (in encoder counts) to which the motor is moved after it completes its homing operation and before the next motor in the homing sequence begins its homing operation.  The motor encoder values are absolute positions that are interpreted relative to the motor zero position established by the homing operation.

Controller Homing Parameters.  This table contains the homing parameters that apply to all robots configured for the controller.

Parameter Database ID Parameter Name Description

212

Auto home at startup

Boolean switch, which when set, forces “Perform Homing” (DataID 213) to be set once at startup. If this switch is set to TRUE in the "controller.pac" configuration file, homing is automatically performed at system startup when power is enabled.

213

Perform homing

Boolean switch, which when set, initiates homing all of the robots in the system.

214

Perform homing DIN

The channel number for an optional digital input signal. When set, initiates homing all of the robots in the system.

303

Home sequence trace enable

Boolean, which when set, will enable generation of special diagnostic trace messages during any subsequence homing sequence.

Over-Travel and Homing Sensors.  If over-travel and/or homing sensors are utilized in the homing sequence, the following values specify how the sensors are connected to the controller.  There are two means of interfacing these sensors:  (1) they can be connected to the single ended input signals of the Guidance controller's 16-pin encoder connectors or (2) they can be interfaced to General Digital Input Signals.

Parameter Database ID Parameter Name Description

10108

Dedicated DIN's selection

Set to "3" to configure the single-ended input signals on the encoder connector for use as over-travel and homing switch inputs. Also disables DataID's 10105-10107.

10104

Axis configuration word

Defines active high or active low polarity of the encoder connector inputs.

10105

Home switch DIN signal

Numbers of the general purpose or dedicated Digital Input signals for the over-travel and home signals.  In a Servo Network system, these values are set to the signal numbers for the controller this is directly connected to the referenced amplifiers and motors.

10106

Positive overtravel DIN signal

10107

Negative overtravel DIN signal

Hardstop Detection.  If the homing method relies upon moving to a hardstop, the following parameters should be adjusted to ensure that the hardstop can be repeatedly detected.  In general, hardstop detection is far less reliable than homing to a over-travel limit or home switch since hardstop detection relies upon the compression of the hardstop material being very repeatable.

Parameter Database ID Parameter Name Description

10122

Hardstop envelope limit, mcnt

A hardstop is detected when a motor's position error exceeds the "Hardstop envelope limit" and the motor position has not changed by more than the "Hardstop pos steady tolerance" for two servo cycles.

After the hardstop is detected, the system reverses the position of the motor by the "Hardstop back off distance".  Backing off is very important to ensure that the motor does not overheat by continuing to drive against the hardstop.

10123

Hardstop pos steady tolerance, mcnt

10124

Hardstop back out distance, mcnt