Society of Robots - Robot Forum

Software => Software => Topic started by: Idunnit on February 16, 2009, 11:59:15 AM

Title: Image Processing with Robot
Post by: Idunnit on February 16, 2009, 11:59:15 AM
Hello people,

As a part of long project involving industry and academic collaboration, we have to develop a controller for the robot (SRV-1). The robot drives around an area by identifying certain path markers. While following the path, it has to recognize targets and recognize them. The targets are colored balloons. The controller runs on a personal computer and communicates to the robot via 802.11g. Its simple enough till here.

The problem is that the the controller has to be written in this proprietary language which is like a subset of C without File IO, and very limited dynamic memory allocation. I have several doubts:

1. Conversion from Jpeg to raw because I am not sure how image processing occurs on Jpeg.
2. I have written low level histogram, edge detection algorithms for Greyscale after referring to the tutorial on this website. But I am not sure how they port to color images.
3. Also I was thinking of Edge detection for path following and blob for target recognition. Does that sound plausible?
4. Low resolution and fast frames vs high resolution and slow frame rates?

Please comment on the project and give me any sources that you know of. I have already did google C and Image Processing.  ;D
Keep in mind, before his project, I did not know C and I had never heard of image processing, so please do not flame me.
Title: Re: Image Processing with Robot
Post by: hgordon on February 16, 2009, 01:08:12 PM
If you are doing the image processing on your host computer (PC) instead of the Blackfin, consider using RoboRealm software for the image processing and scripting.  www.robotrealm.com .  RoboRealm has direct support for the SRV-1 robot.

You can also perform the task on the SRV-1.  There is new neural network pattern processing in firmware that will be supported soon by the on-board C interpreter.  You can use blob processing for path following and blob + neural net for target recognition.

You should post something as well on the Surveyor Robot Forum to get direct help from that user group - http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?board=srv1sw .  Perhaps you can include a detailed description of the path markers and targets.
Title: Re: Image Processing with Robot
Post by: MaltiK on February 16, 2009, 04:34:17 PM
If you are doing the image processing on your host computer (PC) instead of the Blackfin, consider using RoboRealm software for the image processing and scripting.  www.roborealm.com .  RoboRealm has direct support for the SRV-1 robot.

You can also perform the task on the SRV-1.  There is new neural network pattern processing in firmware that will be supported soon by the on-board C interpreter.  You can use blob processing for path following and blob + neural net for target recognition.

You should post something as well on the Surveyor Robot Forum to get direct help from that user group - http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?board=srv1sw .  Perhaps you can include a detailed description of the path markers and targets.


Roborealm.com not "robot" :)

Otherwise, nice answer
Title: Re: Image Processing with Robot
Post by: Idunnit on February 23, 2009, 01:44:17 AM
The image processing and the controlling is being done on the Computer, but I cannot use Roborealm. The focus of the project is not the robot, its the proprietary language I mentioned. The aim of the project is to prove that the language is functional enough to handle real world problems.

Our constraints include that all image processing has to be done on the computer itself. Only basic commands can be used, that is, forward, reverse, turn left, turn right and image capture. Therefore all my questions still stand.

I did download RoboRealm, are there any tutorials on the algorithms implemented in RoboRealm?

Thank you for your replies.
Title: Re: Image Processing with Robot
Post by: HyperNerd on February 23, 2009, 01:48:40 AM
Check out the RoboRealm website - there's loads of tutorials and information :)

 -HyperNerd
Title: Re: Image Processing with Robot
Post by: hgordon on February 23, 2009, 10:44:52 AM
Quote
The problem is that the the controller has to be written in this proprietary language which is like a subset of C without File IO, and very limited dynamic memory allocation. I have several doubts:

1. Conversion from Jpeg to raw because I am not sure how image processing occurs on Jpeg.
2. I have written low level histogram, edge detection algorithms for Greyscale after referring to the tutorial on this website. But I am not sure how they port to color images.
3. Also I was thinking of Edge detection for path following and blob for target recognition. Does that sound plausible?
4. Low resolution and fast frames vs high resolution and slow frame rates?

Are you referring to the onboard C interpreter on the SRV-1 ?

If you are doing the image processing on the SRV-1 using the C interpreter, here is some clarification -

1.  The raw image caputre on the SRV-1 is not in JPEG format.  It is in YUV colorspace - http://en.wikipedia.org/wiki/YUV - which is better for image processing than RGB

2/3.  There are built-in fuctions in the SRV-1 for edge detect and histogram.  There aren't any interfaces currently to these functions in the C interpreter, but they could be added.  There is a C interface for the blob function.

4.  SRV-1 captures to internall memory at 28 frames/sec, so you can decide which resolution works best based on image processing time.

Take a look at the Surveyor forum for more discussion of these topics - http://www.surveyor.com/cgi-bin/yabb2/YaBB.pl?board=srv1sw

Also, I should note that we will have a new version of the C interpreter in a few weeks which has much more complete support for the C language, including pointers, arrays, structs, switch statements, etc.  It will be a big improvement over the current version.
Title: Re: Image Processing with Robot
Post by: superchiku on February 23, 2009, 11:27:25 AM
Mr hgordon...i would like to ask...the srv1 has a full embedded c compiler then why not go for opencv and visual c++....it suits ur need too...and in roborealm...u have to use visual basic scripts to code out ur purpose...but the fasteest will be opencv
Title: Re: Image Processing with Robot
Post by: hgordon on February 23, 2009, 12:35:25 PM
Mr hgordon...i would like to ask...the srv1 has a full embedded c compiler then why not go for opencv and visual c++....it suits ur need too...and in roborealm...u have to use visual basic scripts to code out ur purpose...but the fasteest will be opencv
SRV-1 firmware is built with GCC compiler, and we have users who have ported portions of OpenCV to the SRV-1, but the library is very large, so it will not completely fit on SRV-1 with 4MB flash and 32MB ram.

The onboard C interpreter is only a subset of the C language - we basically just use it for scripting.

I'm actually unclear about Idunnit's requirements.  He mentions a "proprietary language which is like a subset of C", but I don't know if he is referring to the SRV-1's onboard C interpreter or to some other language environment that runs on a host PC.
Title: Re: Image Processing with Robot
Post by: superchiku on February 23, 2009, 12:37:49 PM
any compiler may it be...it needs gud amount of teting and coding...roborealm..cv..java or matlab...a subset of c compiler really doesnt make any sense...may be he is talking abt open cv..but this is the 1st time iam hearing abt a competition which has fixed its language requirement in building a robot..