Fuzzy Line Following NXT Robot
4 stars based on
52 reviews
In the following, an improved version, based on Fuzzy-Logic, is presented. The original version by Lego uses the reflected light to distinguish between black the line following robot (lego mindstorms nxt 2.0) program and white the floor. When the sensor is on the white surface, the right motor is activated and the robot turns left.
In this way, the robot follows the line. The approach is very simple and effective. However, as the robot only distingushes between black and white, the resulting movement looks as if it would be drunk. The idea behind the new version is, not only to distinguish between black and white, but to consider various degrees of grey.
If the sensor is exactly on the boundary, it will see a colour that is between black and white. The more the sensor gets on the line, the blacker the perceived colour is. On the other hand, the more the sensor gets on the white surface, the whiter the perceived colour is. This is called Fuzzy Logic as we do not consider absolute states Boolean Logic, here "Black and White" but different degrees of those states Whiter, Blacker. Now we are not limited anymore to turn only left and right, but can turn more right blacker colour or more left whiter colour.
In this way, if exactly on the colour boundary, the robot runs straight ahead. The program consists of three loops that run at the same time. The first loop reads the current reflected light value and stores it in the variable called "Number 1". The second and third loop control the left and right motors.
The reflected light sensor gives a value between 0 and A typical value for a black surface is around 20 and for a white surface something around These values depend of on the line following robot (lego mindstorms nxt 2.0) program right conditions and the distance of line following robot (lego mindstorms nxt 2.0) program sensor from the surface. The motor power itself as well is a value between 0 and To produce the motor commands as described in the schema, the following calculations have to be done:.
If you program your NXT with the above program, and the robot does not run as expected, check the following:. Original Line Follower Courtesy of Davidin2.