# How to locate an object on a known surface

I am building a small robot on wheels. The robot will be moving at a small speed in a square area of known dimensions. I need to locate the robot and know its position at any given moment so I can correct its trajectory. I can add parts to the robot, like some sort of flag or lighting object. It's preferable not to put any border around the area, since it would limit the flexibility of the project.

• The size of the robot is about 28 x 25 x 11cm. It will go on land and the surface will be ideally flat (but since the friction between the surface and the wheels can vary in different places, I need to know if the robot arrived to the destination or not, and corrections need to be done respectively).
• I can place beacons around the field or any sort of sensors, as long as I can remove them easily and transport them.
• The surface will be about 1.5x1.5m, depending on the range of the sensors, or the method used for localization.
• The robot can start from a determined position.

Some methods

I thought of triangulating the position using two ultrasonic sensors placed at the two edges of the field. Although I am not sure if the US sensors will provide a sufficient angle and range to cover the entire area. I am also concerned about the precision.

Someone pointed to me that I could use two infrared sensors placed at the two edges, and make them turn 90deg both ways and scan the area. As soon as they find something, the position of the object can be found using triangulation. Although I still don't know if these methods work well for a moving object.

If you think that one of the methods that I described is the way to go, please give me more insight on how to implement it in my project.

Here is an illustration of the path that the robot should go along. The basic idea of the project is that the robot should sow seeds at regular intervals, for example every 10cm; this is why I need to know if the robot really covered 10cm after the seed before, and if it has to turn.

I thought of making an imaginary grid: I tell the robot the position that it has to reach, then knowing the position of the robot I can make it turn until it is pointing in the direction of the arriving point and then it covers the distance between it's position and the arriving point.

I am very new to robotics, therefore I would really appreciate a detailed answer.

• I provided a general answer. For a more specific answer you are going to need to provide a lot more details about the field, the robot, and any limitations you have on the design. Ex: How big is the field? Is the surface will controlled (so the wheels don't slip)? Is it bounded? Are there any identifications and/or beacons you can track off? Does the robot start in a know location? How far is it expected to travel? Do you have an unlimited budget (some senors can be pricey)? ... Jul 4 '17 at 2:54
• Thanks for the answer. You're right, I added more specific informations about the project. Also my budget is not very limited but also not very high (It's a project for highschool, I don't think I can fit 4 types of sensors on this robot). Jul 4 '17 at 11:37

Robots usually locate themselves on a field using sensors. None of the sensors are perfect as they each have their own limitations; hence, the more sensors the better.

Here are some sensor options:

1. Motor Encoders on the wheels to track the distance and turns
2. IMU/Gyro to track acceleration and calculate speed and position
3. Magnetometer to correct bearings against magnetic north
4. GPS (usually for large outdoor distance)
5. Range detectors to look for walls or objects to reference off
6. Line detector (for lines or path markers on the floor)
7. Optical Surface Texture detection (like a laser mouse uses)
8. LIDAR imaging
9. Camera imaging (sometimes stereo-graphic)
10. Beacon detector (some fields have beacons placed on them for reference)

Generally the FTC (First Technology Challenge) robots that have good autonomous programs have at least four different sensor types that they use for positioning.

I suggest to use a color sensor and place some RGB colours in different parts as grid to let the robot know its position.