I am a total newbie in robotics so please bare with me.

I have a school project where my team has to design a robot that is capable of picking up 3 golf balls in different sizes at predefined locations. Then it has to drop these balls into their respective holes.

We are using an arduino chip in our robot.

I thought I could perhaps define a path for the robot, an invisible virtual path you may call. So imagining the platform as Cartesian plane, can I tell the robot go to where I want it to go? For example, go to (5,12)

Or do I need some sort of sensors so the robot figures it out by itself. Thanks for your time!


2 Answers 2


So, this is my first answer here. Hopefully this will help!

The golf balls, given that they are present in predefined locations, seem to be either be on a graph/grid, or at certain distances away from each other on the same plane.

Firstly, for a grid. You need to have line sensors to detect the presence of a grid which is either a junction (basically a complete black line detected by all sensors) or a right-angled turn. In either case the trick is to assign co-ordinates to it and travelling based on these. For example to travel from (0,0) to (0,1) you need to go north by 1 co-ordinate. So starting from (0,0) the bot must follow the line north till it detects a junction. And so on for any co-ordinate.

This link should help: http://www.robotix.in/tutorials/category/auto/grid

Secondly, for no grid. Assuming that these golf balls are at certain distances from the starting point, it is possible to create a virtual grid of your own where each co-ordinate is at fixed distances, just like on a grid or graph. In that case, the bot has to follow the same procedures to reach a destination but just by moving for those fixed distances. So it is suggested that your bot has encoders for the dc motors that will help in travelling precisely the distance that you wish to travel.

Good Luck!! \m/


@Darth Hodorus answers is great ! But I just like to add some info about the second option.

I would definitely go for it and use dead-reckoning. It's easy to do if you got the encoders and you have plenty of tutorial on it =).

You'll realize that the major problem of D-R is drift. So you might have to think of a procedure to calibrate the robot each time. For example, with a Cartesian robot it's as easy as going to a locked position (a position where the robot can't move anymore i.e min in X, Y and Z) and define it as the (0,0,0) position. Indeed, you don't need to measure this position as you can mechanically find it.

  • $\begingroup$ I'm actually thinking about implementing calibration as well. I might stop the robot halfway and then make a distance proximity with an ultrasonic sensor. If it picks up something weird, then I'm planing planning to implement a for loop where each iteration turns the robot about a small angle. Then it does the proximity scan again so on so forth. I'm looking at dead reckoning now. Thanks! $\endgroup$
    – Alp
    Mar 6, 2015 at 9:09
  • $\begingroup$ Ultrasonic is definitely a way to go but the accuracy is going to be not as good as a mechanical stop position. I'll suggest you to do the ultrasonic if you don't have the mechanical stop. $\endgroup$
    – Malcolm
    Mar 6, 2015 at 9:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.