Recently many kind of robot contests have being opened and some interesting reports of the challenge are found on the web. The Line Following is one of the robot contests to vie running speed on the line. I build a tiny line following robot which can run on the desk. It is for only a personal toy reduced its size to less than one fifth compared to typical line following robots, not in formula. But I believe that it is suitable for in-door use in the small Japanese houses said that rabbit burrow...(^_^;. Of course I have no time to appear the robot contests :-
About Line Follower
The line follower is one of the self operating robot that follows a line that drawn on the floor. The basic operations of the line following are as follows:
1. Capture line position with optical sensors mounted at front end of the robot. Most are using several number of photo-reflectors, and some leading contestants are using an image sensor for image processing. The line sensing process requires high resolution and high robustness. 2. Steer robot to track the line with any steering mechanism. This is just a servo operation, any phase compensation will be required to stabilize tracking motion by applying digital PID filter or any other servo algorithm. 3. Control speed according to the lane condition. Running speed is limited during passing a curve due to friction of the tire and the floor.
There are two line styles, white line on the black floor and black line on the white floor. Most contest are adopting the first one in line width of between 15 and 25 millimeters.
Right image shows bottom view and side view of the built line following robot. All mechanical and electrical parts are mounted on a proto board, and it also constitutes the chassis. The line following robot is upheld in three points of two driving wheels and a free wheel. The driving wheels are made with a 7 mm dia ball bearing and a rubber tire. The free wheel is a 5 mm dia ball bearing attached loosely. To drive driving wheels, two tiny vibration motors that used for cellular phone, pager or any mobile equipment are used. Its shaft is pressed onto the tire with a spring plate, the output torque is transferred to the wheels. The steering mechanism is realized in differential method that steer the robot by difference in rotation speed between the left wheel and the right wheel. It does not require any additional actuator, only controlling the wheel speed will do.
An Amtel ATmega8 is used for the controller and it is powered by a lithium coin cell. The other lithium coin cell is for only motors. Separating the power supply into two cells is to avoid accidental reset of the microcontroller due to voltage dip by motor current. Six photo-reflectors are mounted at front end of the chassis. They sense reflection rate of the floor under them. Motors are driven in PWM to control rotation speed linearly. The latest circuit diagram is.
Two CR2032 lithium cells (One is for controller, the other is for motors)
Two micromotors for left wheel and right wheel
45(L), 33(W), 12.5(H) [mm]
15 grams (Including two cells)
53 centimeter per second at oval course
To detect a line to be followed, most contestants are using two or more number of photo-reflectors. Its output current that proportional to reflection rate of the floor is converted to voltage with a resister and tested it if the line is detected or not. However the threshold voltage cannot be fixed to any level because optical current by ambient light is added to the output current like the image shown right. Most photo-detecting modules for industrial use are using moderated light to avoid interference by the ambient light. The detected signal is filtered with a band pass filter and disused signals are filtered out. Therefore only the moderated signal from the light emitter can be detected. Of course the detector must not be saturated by ambient light, this is effective when the detector is working in linear region. In this project, pulsed light is used to cancel ambient light. This is suitable for arrayed sensors that scanned in sequence to avoid interference from next sensor. The microcontroller starts to scan the sensor status, sample an output voltage, turn on LED and sample again the output voltage. The difference between the two samples is the optical current by LED, output voltage by the ambient light is canceled. The other sensors are also scanned the same above in sequence.
Signal processing of line detection
Above image shows the actual line position vs detected line position in center value of 640. The microcontroller scans six sensors and calculates the line position by output ratio of two sensors near the line. Thus the line position can be detected linearly with only six sensors. All the sensor outputs are captured as analog value that proportioning to reflection ratio, and the sensitivity have variety between each one of them. In this system, to remove the variations from the outputs, calibration parameters for each sensor can be held into non-volatile memory. This can be done with online mode.
The line position is compared to the center value to be tracked, the position error is processed with Proportional/Integral/Difference filters to generate steering command. The line following robot tracks the line in PID control that the most popular algorithm for servo control. The proportional term is the common process in the servo system. It is only a gain amplifier without time dependent process. The differential term is applied in order to improve the response to disturbance, and it also compensate phase lag at the controlled object. The D term will be required in most case to stabilize tracking motion. The I term is not used in this project from following reasons. The I term that boosts DC gain is applied in order to remove left offset error, however, it often decrease servo stability due to its phase lag. The line following operation can ignore such tracking offset so that the I term is not required. When any line sensing error has occurred for a time due to getting out of line or end of line, the motors are stopped and the microcontroller enters sleep state of zero power consumption.