• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Whenever you search in PBworks, Dokkio Sidebar (from the makers of PBworks) will run the same search in your Drive, Dropbox, OneDrive, Gmail, and Slack. Now you can find what you're looking for wherever it lives. Try Dokkio Sidebar for free.


Activity 5

Page history last edited by PBworks 14 years, 9 months ago

Open-loop control


Throughout the 1970s, a common approach in robotics was for a robot to be presented with, or have to learn, a map of the environment it was expected to work in. The control program would then use the information about where the rrobot was, and where it should move to, to construct a plan identifying the sequence of moves the robot should make to move to a particular location. The plan might take the form of a sequence of instructions such as: go forwards 1 metre, turn left 90 degrees, go forwards 2 metres, and so on. This approach required the robot to be able to move quite precise distances, something that is not always easy to achieve.


In an open loop control program, the robot executes a sequence of instructions without paying attention to the outcome of any of those instructions. In this exercise, you will write a program that will turn the robot's motors on for a fixed period of time, so that it will travel a known distance (hopefully!) or turn through a known angle.




Using the simple remote control programme, you should be able to find out how long the motors have to be switched on for the robot to travel a known distance in a straight line between two check marks. Using this time as a guide, write a program that will drive your robot only and exactly the distance between the two check marks on your test track.


Modify the timing until the robot travels exactly the required distance.


How confident are you in the behaviour of your robot's behaviour? Place the robot at the distance you selected from a wall or precipice (such as the edge of the table) and run the program.


How can you configure the motors so that your robot will turn on the spot? How long do you have to turn them on so that the robot will turn through niety, or one hundred and eighty, degrees? Can you calibrate your programme so that you can easily and reliably get the robot to turn through any required angle?

Will your program work correctly in another team's robot?

How good a form of control do you think the use of timings is?


Programming tips

  • Use a GenericDifferentialDrive service to represent the drive system of your robot.
  • Use a Timer to wait for a specified time; use a Data block to set the time.



  • You can configure the GenericDifferentialDrive using a manifest.
  • Try LEGO.RCX.Vehicle.manifest.xml for a LEGO RCX buggy
  • Try LEGO.NXT.Tribot.manifest.xml for a LEGO NXT Tribot or similar design.


Download this for a complete project: act 6 timed drive.zip

Back to Home or on to Activity 6

Comments (0)

You don't have permission to comment on this page.