-1

I have to make a bot which has to overcome obstacles autonomously in an arena that will be filled with rocks. The bot has to find its way through this area and reach the end point. I am thinking of using edge detector operators like canny and sobel for this problem.

I want to know whether those will be suitable options for this problem. If so, then after detecting the edges, how can I make the bot find the path, overcoming the rock obstacles?

I am using QT IDE and opencv library.

Joe Mastey
  • 26,809
  • 13
  • 80
  • 104
  • welcome to stackoverflow. This is too broad of a question, you'll want to narrow it down to a specific question, and preferrably mention what you've already tried. You'll likely get your question closed as is. – alrikai Jul 03 '13 at 17:48

3 Answers3

1

Since you will be analyzing frames of video, and the robot will be moving most of the time, image differences and optical flow too will be helpful. Edge detection alone might not help a lot, unless the surroundings and obstacles are simple and have known properties. Posting a photo of the scene can help those who want to answer the question.

Totoro
  • 3,398
  • 1
  • 24
  • 39
0

Yes, canny is a very good edge detector. In fact the opencv implementation uses sobel to get the gradient estimate. You may need to apply a Gaussian filter to the image before edge detection. Edges are good features to look for rocks, but depending on the background other features such as color may also be useful. It probably would be easier if you gather 3D scene information via stereo, or laser scanner, or kinect like sensor. Also consider detecting when you bump into rocks and building up a map of where they are.

Bull
  • 11,771
  • 9
  • 42
  • 53
0

You can use contours to detect any object. You can estimate its size by finding the area of the contours. Then you can use moments to find the center of the object.

SRF
  • 929
  • 1
  • 7
  • 15