MathCS - Robotics

Challenge: Coordinate System

In this challenge your robot needs to successfully keep track of its location and heading so it can move to specific points in a virtual coordinate system. To complete your challenge you need to set down your robot at the origin of a coordinate system (units in centimeter). You will receive 4 coordinate points p1=(x1, y1), p2=(x2, y2), p3=(x3, y3), and p4=(x4, y4)=(0,0) for this challenge, where -100 < xi < 100 and -100 < yi < 100, i=1, 2, 3, 4.

Your robot must move from its starting position at the origin to p1, then to p2, then p3, and finally back to p4=(0,0). There will be no obstacles. Your robot must act autonomously once started.

One possible “localization” path

As programming environment LeJOS is recommended for this assignment. There are a fair number of trigonometry formulas to use and there is no support for that in NXT-G. Microsoft Robotics Studio is a second possibility.


You must be successful in at least 1 of 2 trials and you have 10 minutes to prepare after learning the course layout. You receive 25 points for each target of which you are within 15 cm, 20 points if you are only 20 cm within a target, 10 points if you are 25 cm away, or 0 points if you can't get within 25 cm of a target.

Note: In an earlier challenge you already made your robot move forward and rotate by a specific amount. Traveling a specific distance worked well and pretty accurately, but the error in rotation was comparatively large. For this challenge to succeed you might want to use the compass sensor to improve the accuracy of a rotation. In addition, your robot must keep track of its position in the coordinate system at all times and be able to move from its current position and heading to an arbitrary (x,y) position.

If you use the compass sensor, it should be placed at least 5 inches away from any motors and should be parallel to the driving plane. You might also want to calibrate the compass sensor to adjust to possibly different magnetic and electric conditions prior to starting your run.

Results from 10/29/2008:

We continue to use the Java programming environment, and some people continue to struggle with that. In addition, some laptops crashed and had to be re-setup. As a result only two teams took up the challenge. One team was successful, rewriting parts of their program "on the fly". The other team had some persistent problems, but came close - they believe their NXT has a faulty motor ..... The remaining teams will re-focus their attention on the next challenge.

We used the points (0, 0) => (40,40) => (-40,80) => (-40, -20) => (0, 0) for this challenge on a nice, smooth surface. The points were marked clearly and the predicted path was shown so that you could follow the robot's progress easily.

Team A: 100
Team B: 0
Team C: 90
Team D: 0
Team E: 0

Click here to watch the outcomes of this challenge

Sample Movies