|
Is this the way to go? Obstacle avoidance Anonymous |
15 year
|
My mobile robot has a forward facing camera for obstacle avoidance and path finding. I want to implement this logic. If there is nothing right in front of the robot, keep going straight ahead, else turn to a direction where there is a free path. My question concerns the first part of the logic, finding the nearest object straight in front of the robot.
For this I first did edge detection, then I obscured much of the picture with two masks created with the display modules,on the remaing edges I did a side fill from above and a poit finder that gives me the nearest object.
This does work quite well but I was wondering how other people solve this. Are the other, maybe better, solutions?
|
|
|
Anonymous |
15 year
|
Hello,
Did you try working through the Obstacle Avoidance tutorial on this site? The tutorial is very clear and explains a number of different methods. Click on the Tutorials link at the top of this page and look at the third tutorial from the top.
|
|
|
from United States [60 posts] |
15 year
|
If you look back through the last week of messages you'll find 2 or 3 others about this same problem. I know I posted a message or two on the topic.
I'd summarize the two basic techniques as (1) finding the open floor area and looking for a high point and (2) finding the obstacles, collapsing them into a blob on the bottom, and then avoiding the high part of the pile.
|
|
|
Anonymous |
15 year
|
Rud,
One technique I forgot to mention last week was using a visible line laser and detecting the lowest (ie nearest) point on the laser and moving to avoid that. It works quite well indoors (don't even bother with it outdoors as few visible line lasers can compete with the sun) and has proven to be one of the more reliable obstacle avoidance techniques.
http://www.roborealm.com/help/Laser_Line.php
STeven.
|
|
|
Aswin from Netherlands [5 posts] |
15 year
|
Hi all,
Thanks for the replies. Indeed I did read the tutorial about obstacle avoidence. It was very usefull. Unlike the tutorial however I want my robot to go straight ahead as long as possible, it should only turn if it is no longer possible to go straight ahead. For this I need to find the nearest obstacle straight in front of the robot. I should ignore all other objects that are not on collision course. My question does not involve finding objects or paths, that I already learned from the tutorial. My question is how to ignore objects outside collision course.
What I did is to mask out the left and right side of the image so that only a triangle of the image stays visible. This shape takes perspective into respect. I treat this part of the image just like in the obstacle avoidance tutorial, only the side fill fills from above. This way I get a point corresponding to the closest object in the robots path. This technique gives me the information I want.
However, I was wandering if the trick with the mask is the best way to ignore objects outside collision course. Are there alternative ways that you used?
Attached is my program and two images, the snap1 has the raw input and snap2 shows the triangle and point with the closest object on collision course.
program.robo
|
|
|
from United States [214 posts] |
14 year
|
Hi Aswin,
One thought that came to mind is to try the Prewitt Edge detector followed by the Auto Threshold module rather than using the Canny Edge detector. I find this produces much more stable edge maps than the Canny filter.
--patrick
|
|
|
Anonymous |
14 year
|
Aswin,
I think the mask is probably the best and easiest way to go. Was there something in particular that you found is not working well? Or is the mask causing some unwanted issue?
STeven.
|
|
|
Aswin from Netherlands [5 posts] |
14 year
|
The mask is working well. But I am new to Roborealm and a bit overwhelmed by all the modules. That is why I thaught it to be a good idea to verify my solution within a more experienced community.
Thanks everyone for the response.
|
|