Wrong LEGO Mindstorms robot positioning without sensors (part 1) Pro Preview

You are not using sensors?! You are positioning the mindstorms robot only by moving forward, backwards and rotating it. That`s one of the BIGGEST mistakes teams make on the FIRST LEGO League competitions. In this video we are showing a robot with chains and how imprecise are the results are when you are not using sensors. 

  • # 41
  • 23 Sep 2013
  • 11:11

To learn how to align precisely check out these videos:

They will give you the knowledge to use LEGO Mindstorms NXT light sensors accurately and position the robot precisely on the field.

Error designed by Anas Ramadan from The Noun Project


In this episode I would like to show you the it is nearly impossible to position you robot precisely on the field using only moving forward,backward and steering. So without the use of sensors and aligning you get some very very different results every time. For example is I now start this robot here - run.

You can see that obviously it does not return to the same position every time. It has some like two or three centimeters difference and I can start it again.

And we will see that the result will be different - like this currently.

First I would like to start from the DistanceMove project from episode 38. I will open this project - DistanceMove project. As you recall we have developed a Block that moves the robot a specify number of millimeters forward. Here it is. And we also have some other functionality that I will now delete.

So I have this DistanceMove where I can set the number of millimeters that I would like the robot to move forward. And the power of the motors. Let's set it to 75. Now we will do a number of times - going forward and backward. So that we can detect the difference of the position of the robot after several movements. I will take - so we are moving forward 300 millimeters - then we are moving backward 300 millimeters. It is 300 here, but it is with power -75. And then we are moving forward again - 300. And then we are moving backward again -75. Okay let's see how it works. Of course I forgot to set the distance for the last Block it will be 300 millimeters. And now let's download the program.

Let's now position the robot exactly at the border of the base of the field. And run the program. Not this one.

This right here.

As you can see there is a great difference between the starting position of the robot and the end position of the robot. Because we are moving only forward-backward, forward-backward. Now let's do some other more complex movements so that you can see the differences. Now let's do a more complex move. For example let's move forward 300mm and then do a turn - steering. We would like to steer one of the wheels for let's say we would like to steer right for three rotations. This would be 60 and then again have a DistanceMove.

And move forward a number of millimeters. Okay let's see this program. Let's now set the robot for example we will use this text here for aligning. We will put the robot exactly at the first word and then we will start the program

and we will measure the end position of the robot. The end position of the robot is - let's measure it for this tire it's - actually here.

And now we will start the robot again.

As you can see there is approximately a centimeter of difference between the position for the first run and the position for the second run. Now let's do an even more complex move. Let's move in the following way - we have a DistaceMove for 300mm then we are turning right then we are again moving forward then why not turn left - steering turning left for let's say 2 rotations. And see the difference in the position for this one. You can see that it will be quite big. This time I have added a tape here - white tape and I will position the robot exactly at the beginning. Now let's run the program.

Let's now mark the end position of the robot again with tape - so it's right here.

It was aligned to this tape. And start it again.

As you can see although we have the same Blocks both programs - the first run and the second run. The first run the robot was positioned like this and the second run it is positioned like this. We can to an even third run.

What is important to understand here is that after two or three turns it is nearly impossible to position the robot at the same place every time so you should never use moving forward and steering to position your robot on your field you should always use sensors and aligning to a line. I will do one more last program that will finally show something more complex. Let's say that you would like to go out base collect some items and return to base. So for example you are moving 300mm forward then you are collecting something with a turn. You are turning right - value 40 for two rotations. Then you are collecting the items by moving forward.

200mm and then moving backwards 100mm -75. And you must do the opposite of turning right - so you must turn left, but backwards .

This here is the program we are turning with 40, but it is minus, the power of the motors will be -50. And again for two rotations. And after that we would like to return back to base. Back to base 300mm with the power of -75. So again : moving forward doing a right turn collecting some items with these Blocks. Then doing the left turn opposite and then returning back to base. Let's check this program. What more unexpressed teams that are starting for the first year - probably for the second. Most of the time from our experience they are expecting that the robot will behave the same way when moving forward-backward and position itself at the same place. Again I have added this new line here with this tape. And I will start the program.


You would expect that because the robot is moving forward and then backward. And it is actually doing the opposite it will return at the same place. But as you can see there is over a centimeter of difference and we can ever start it again.

And for example in this case it is even not aligned correctly. So never, never use moving forward-backward and different rotations to position yourself of the field. And to position your robot precisely. For precise positioning you should always use aligning to lines and to borders. Which you can see in some of out next episodes.