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. |
10123 |
Hardstop pos steady tolerance, mcnt |
|
10124 |
Hardstop back out distance, mcnt |