I am thinking of creating a robot that can navigate using a map. It is controlled from a PC. An 8-bit controller performs low level tasks and the PC is doing the image processing. I plan to implement it in a single room where the robot is placed and the robot and environment are tracked by a camera from a height or from the ceiling of the room. First, the robot needs to be mapped, like this http://www.societyofrobots.com/programming_wavefront.shtml
- Track the robot from some height using camera Following the wavefont algorithim to locate robot and obstacles.
Procedure:(just my idea)
The camera will give image of the robot surrounded by obstacles in the random places. using some opencv technique draw some grind over the image.
Locating the grid which contain robot(by having some colored symbol over the robot) and locating the grids containing the obstacle.
Now the grids with obstacle is thought as wall and the remaining is the free space for the robot to navigate.
robot is going to get the goal place which should be reached is given from the pc(may be like point the place to reach in the image by mouse click).
- Mapping the room and locating the robot
How to do that? The robot should know where it is in the map or the image. We cannot believe only the camera is enough to locate the robot. So I thought of adding triangulation mapping like placing two IRs in the room and a receiver in the robot.
The doubt I have in this is how an IR receiver can know from which direction it is receiving the IR signal (from left or right ). I think it knows only that it receives IR not the direction. Then how is the triangulation going to happen if I don't know the angle and direction?
- coming to the image processing, how can I implement the Wavefront algorithm(that is capture the live vedio and draw grids over it to find robot and the obstacles)?
I have HC-05 Bluetooth module, Arduino, Bluetooth dongle, chassis with dc motors and driver, and a dc supply.