obstacle avoidance
16 year
in this robotics competition i am getting an over head view of the arena which has red patches and white obstacles, i have to control a robot(from my serial port) to visit all the red patches and finally end at the red srectangle without touching the white obstacles. now. i have decided to cover my robot with a blue cover to identify it. now can any one help me how to do it. how do i keep track of the position of the robot and the red patches, if i have a file which has all the postion(X,y,color) of the pathches i can then come up with a shortest path algorithm to traverse them, but how do i avoid hitting the obstacles(white).. plz help.. i hav written a small program to make the unevn shapes of obstaceles(white ) into rectangles but i am unable to move further..
Anonymous 16 year
here is the pic
Anonymous 16 year
We do have a new module scheduled that will help with the path planning around the white objects. But before we get into that module you seem to have issues at a more basic level.

1. Are you able to move the robot at all using either RoboRealm or some other application that you can control?

2. If so, what does the robot look like from the overhead camera. Does it have any distinguishing marks that can be tracked? I.e. is the roof of the robot painted in blue? I assume that this is not a simulated competition? The point is to be able to identify the orientation of the robot based on what the camera sees. If you include an image here we can help with the blob filtering that would uniquely identify the robot versus the other figures.

3. Once you have detected the robot you need to know it orientation. There a re a couple of modules that will provide this information like the Moments module using Orientation assuming your robot shape is not circular.

4. Once you know the robots orientation and position you would have to command the robot to move towards the final destination. This is done with some math and can be thought of in two steps .. .orient the robot towards the destination and then move forward.

There are quite a few steps to get this working. It would be better to first concentrate on getting the robot to the final destination under computer control. Obstacle avoidance is then a simple extension of this basic movement.

Can you post an image of what your real robot/arena looks like from an overhead camera and we can get started?


Anonymous 16 year
hey Steven thanks for the reply.
i will give you a few details first.
1> i donot have the picture of the arena right now. but the event is as follows.
    there is a arena colored black evenly.
    there are obstacles which are uniformly colored white.
    there are check points that are marked red circles.
    the idea is to develop a robot controlled by a Computer  that can traverse the course (visit all  the    check points) without hitting the obstacles.
  now i thought because the obstacles are 3D thus an onboard camera wont be helpful as i will not be able to see the entire area.
  so i thought i will use a over head camera.
   next, problem was how to identify the robot. well i thought  if i stick a particular shape (and color) on the top (in the picture a blue triangle) then i will be able to know the postion of my robot.

   then came the problem of orientation where  i got stuck( i still am!!!).
  my algorithm is as follows:-
  if i know the COG of my robot(blue traingle).and the COG of all the check    points   , i will be able to calculate which check point is closest to me.
     then i will make the COG of my bot as the source and COG ofthe check point as a destination and draw a straight line.
  next i will see if the straight line passes through any white pixel if no then i move my robot.
   else.. check which obstacle is ahead and plot a new destination some distance away from the COG of the obstacle and reiterate the process.
   now i am not allowed to use a ready made robot so i am building my own. the heart of it is a ATmega8 MC which i will send data to using your serial port module.
  i know its pretty difficult. but i will give it a shot.. and i need some help on the way.
   (i was playing a bit with a .robo file that you had written on another post obout multiple colors and the analysis module->geometrical statistics but it seems to only work when i click on a specific blob cant i write data  about all the blobs to a file at the same time).

Anonymous 16 year
That sounds about right. Note that even with even colored surfaces the lighting can still be an issue. If you ever look at a black road in the middle of the day ... it is not exactly black even though we think of it as black. Thus, it is always good to get some real images ASAP.

Nevertheless, the task from the vision point of view is not too difficult. I would first concentrate on getting your robot to work reliably and be sure that the communication between the robot and the base computer works.

Given where you are in this project we will be launching the path planning module shortly which will make the obstacle avoidance somewhat trivial. Until then try to focus on getting the robot to work and creating a test arena with the overhead cam.

In terms of the blob data, if you switch any of the analytic modules to each individual blobs it creates an array. When you click on the screen you see the stats just for that blob. Note the () on each of the variables that indicates that blobs index into the array. If you select that base variable (i.e. AREA) in the write variables module it will write that entire array (i.e. each blob) to disk.


Anonymous 16 year
thnks.. i will keep working on the robot .colud u atleast give me a way to find the orientation of my robot from a over head camera pic.. then i can work on the robot control part..
thnks once again.. for taking the pains to write the obstacle avoidance module
Anonymous 16 year
hey Steven , i wrote this code yesterday, which finds the center of the all the circular bobs. (on this i will  add a shortest distance calculation). i plan to use this even for detecting the orientation of my bot.
  BUT there is a major problem. i dont know which one is which.
suppose i want to find the distance between the red and green blob. how can i do that.
i wish to place two color blobs on the robot to find the angle(orientation) but again i need the COGs of two specific color. how do i do that...
  i hope the obstacle avoidance module will be up soon..

Anonymous 16 year
Attached below is a robofile that will find the angle between the red and cyan blobs. The way to do this is to use the blob_filter module to find the two colors you want (by using the Closest RGB and larger than 200 pixel filters). Then you add in the Red Closest RGB again (so you have it twice) which will guarantee that the red blob is always the first in the blob array (the blob_filter will order the resulting array from largest responding blob to least reponding blob). Thus you now know the ordering.

The next step is to use a bit of VBScript to extract the angle from the vector between the red and cyan blob. This is done using the atan function.

Let me know if you have any questions regarding this.


here is a pic
16 year
hey i finally made a make shift arena..... for you to see...
  the yellow markers are to be visited by the robot which is controlled by the PC....serial port(of RR)....
  as i said i wanted to use a different color to distinguish my robot. in this case i used a red circle...
i also tried out a few other things including another one in which the robot was markd by a red and blue strip on white. once again trying to help the orientation....
  well i am also playing a bit with yor API in C++....trying to solve the path finding problem...to find the shortest path across the three targets(in yellow).
my professor is said.. to try and convert the COGs of the yellow markers into a graph... then solve a hamiltonian path... well i am convinced there is a bettr way to find the shortest route...... well please help us out....

with regards arindam.....and team

Anonymous 16 year
ohh that is not the actual robot .. its still under construction.. i was just testing it out using a over head cam.... once i fix on the top of the robot.. i will just fix it on to the one we construct..
Anonymous 16 year

You may find our new tutorial interesting:


which uses the finally released path planning module. If you need specific examples using the above posted images let us know.


This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index