Magnets, sensors create paths for automated guided vehicles
Implementing the AGV controls
Once the sensor and motor controllers are verified to work, we can proceed to the automatic mode. In this article, all the computation is done in the motor controller using the MicroBasic scripting language
The sensor outputs a value that is the tape’s distance from the center of the track. This information is then used to correct the steering. If the tape is centered, the value is 0, and no steering correction is needed. The farther the track is from the center, in one or the other direction, the stronger the steering change. In this example, a proportional control is implemented. For best precision and response time, the control algorithm may be improved to a full PID (proportional-integral-derivative).
How the throttle power is controlled (when to start, stop, accelerate, slow down) is application dependent. In this example, the AGV will be made to move when a tape is detected, take left or right forks, and stop at precise locations. The AGV will then resume moving after a set time, or when a user button is pressed. The AGV will stop when the track is no longer present.
In a practical implementation, the AGV throttle will be controlled by an external device, such as a PLC. The PLC must then be connected to one of the motor controller’s inputs. The throttle information can be an analog voltage or a variable duty cycle PWM signal.
Fork, merge management
The sensor has an algorithm for detecting and managing up to two-way forks and merges along the track. Internally, the controller always assumes that two tracks are present: a left track and a right track. When following one track, the sensor considers that the two tracks are superimposed. When entering forks, the track widens, and so does the distance between the left and right tracks. When approaching merges, the sensor will report a sudden spread of the left and right tracks but will otherwise operate the same way as at forks.
Localization using markers
Magnetic markers are a piece of magnetic tape of opposite polarity located left and/or right of the center track. Markers provide a very simple and cost-effective method to identify specific locations along the track.
This application uses markers on the left or right side to indicate which track to follow at a fork. Markers located at the left and right side will indicate a stop location.
More elaborate marker arrangements can be made to carry more information about a location on the track. An example of multi-level markers is provided in a diagram.
Manual steering override
It is common to require that the AGV be driven manually, to place it in position, or to move it along an untracked path. Buttons, a joystick, a PLC, or an RC radio can be connected directly to the motor controller’s free inputs. The program running inside the motor controller can easily be made to switch from automatic to manual command. Manual override is not described here.
Test track description
The test track figure shows a simple AGV track with several loading stations and one stop station. For simplicity, the AGV here will stop 30 seconds at every station, or until the operator presses the push button.
The flow chart shows the structure of the MicroBasic program that will run inside the motor controller to move and steer the AGV along the track. The full source code is provided at the bottom of the article.
Manual AGV test drive
Before the sensor can be used for automatic steering, it is a good idea to test drive the chassis manually, either by attaching a joystick to the PC that is connected to the motor controller, or by using an RC radio. If the vehicle is difficult to drive manually, in automatic mode it will be equally challenging. Modify the design so that it drives and steers as smoothly and accurately as possible.
Testing the automatic steering program
When running the program for the first time, it is recommended to lift the AGV's wheels off the ground. Then place a piece of magnetic tape below the sensor. Verify that the left and right wheels start rotating when the tape is detected. Verify that the left and right rotation speed changes as the tape is moved away from the sensor's center, in a manner that would cause the AGV to rotate so that the sensor would become centered with the tape. If the AGV rotates away, then invert the polarity of the Gain value in the script.
With the AGV wheels on the floor, verify that the steering correction is such that the sensor never moves far from the track. Increasing the Gain value will cause a stronger correction when the sensor moves away from the tape, but it can make the AGV oscillate if the gain is too high. Find the optimal Gain value for stable and accurate tracking.
Testing fork, stop markers
Markers are best tested with the AGV on the track. Verify that the AGV follows the expected track at a fork. When entering a merge, ensure that the AGV is following the correct track and that it will not jump to the opposite track when it enters the sensor's range.
Verify that the AGV stops when a left and right marker are detected at the same time. Check that the AGV resumes motion after 30 seconds, or when the button is pressed. Beware that as the AGV moves away from the marker pair, one of the two markers will disappear from the sensor's range before the other. The other marker will remain active for a short duration and will therefore be considered as a left or right fork marker. Ensure that one marker is present before the next fork or next merge following a stop location.
Improving the AGV
Using a more complex steering algorithm: The sample script uses a simple proportional control, where the amount of steering correction is the distance from the center track, multiplied by a gain factor. For better results, the script may need to be enhanced so that a proportional-integral or full proportional-integral-derivative control is used instead.
The amount of correction can also be capped to avoid oversteering. In a variable speed system, it may also be desirable to have a different correction gain at slow and high speeds.
Using multi-level markers
In this application example, we used a simple left and right marker pair to identify a stop location. In typical applications, more information is needed about location so that the AGV will change its behavior. For example, identifying segments of tracks where the AGV must move at a high speed and others at low speed, identifying load stations requiring longer pause time than others, or identifying charging stations where the AGV will stop only when its battery level is low and resume when the battery is charged.
One simple and free technique is to count markers in a track segment delimited by a marker segment on the opposite side. A figure shows such a marker configuration. When a left marker first appears, the counter is reset. The counter is then incremented at every appearance of a right marker while the left marker is still present. When the left marker disappears, the counter is evaluated and the AGV can alter its operation accordingly.
Improving stop position accuracy
In applications requiring the AGV to stop at a very precise location, a secondary sensor, oriented at 90 degrees from the main sensor, can be added. This sensor can then be used to locate another magnetic guide with 1 mm position accuracy. Sensors and guides arrangements are shown in the figure.
AGV localization, safety
For safety reasons, it is typically necessary to fit the AGV with an infrared or a laser range finder so that it will stop if a person or obstacle is detected along the track. Range finders typically provide a digital signal which can easily be connected to an input on the motor controller or to a PLC if one is present.
If more information is needed by the AGV about its location along the track, RFID tags positioned in key locations are a good solution. However, RFID tags typically imply the presence of a microcomputer or a PLC on the AGV to process the data and make navigation decisions.