Grumpy_Mike:
The thing about using a compass is that you must also know where the robot is from other means, like inertial navigational. Therefore you will know what the compass should read at any point. When you find that the compass is giving a wildly off reading you know you are close to your magnet.A conventional metal detector would also work for you here providing it is not disturbed by the motors.
as the robot will not have to go through a grid pattern that might take a long time to sweep the entire course.
That implies you need a much longer range with proportional sensing.
Thanks for the idea, but it seems too complicated for my little project. For the course, it will not be a big course. It is just going to be a small set up course with a couple of magnets, let my system to sweep the course and beep whenever it detect a magnet, and continue to sweep the course to find the next magnet.