donderdag 28 mei 2009

28-05-2009

I haven't figured out the pixel to meters formula yet but i've done something else. I've measured what the longest meterdistance is with the laser rangefinder and i've measured what the longest pixeldistance is and i've used 1.20 meters for the height in order to get the formula to work. It is still a approximation but it seems to work good enough for now.

However I've got some syncproblems now according to Arnouds hypothesis. The groundtruthsensor works to slow compared with the omnicamrangefinder and that is why these two sensors aren't in sync, this is why the SLAM methods do not work. I will need to look at Steven Roeberts and Bas Terwijns logs in order to solve this problem because they had this problem last year too.

I've also noticed that I've measured the distances from a mirror, because the camera is looking at a mirror. I should now unmirror these distances, which should not be that hard.

woensdag 27 mei 2009

27-05-2009


I've got the normalization to work in visual basic. I've had some difficulties mainly because i had the wrong formula's... I've tested the normalized image with the current grassHistogram.hist and it seems to work a lot better than yesterday(look at the picture, red is freespace and white dots are the detected edges). I've also tried to get the newest version of the grassHistogram and i've created a few methods in Gideons free space detection software in order to do this. I've emailed Tijn about how to create the Histogram file because Gideon didn't know that. The current histogram is working pretty good with the normalized image so getting the updated version is not my priority right now.

The Rangefinder can now find the free space in a picture which is what I want. However it isn't very clean at the moment, it still have some measure errors. I should find out if this isn't a problem for the scanmatching and SLAM algorithms. I can do this later when i've got the full system operational.

I've still got 2 things to do right now:

1) Figure out the pixel to meters formula
2) Convert the omnicam ranges to laserrangedata and notify the lasersensor

usarsim.ini tells me the specs of the OmniP2DX and Arnoud says he estimates the height of the camera and image to be 1.20 meters.

I've implemented the omnicamranges conversion to laserrangedata. It seems to work for now eventhough i've put all the ranges on 20 meters, it is just for testing because i haven't figured out the pixel to meters formula yet. I've implemented it so that it calls the Manifold.ProcessLaserRangeData directly. I've also disabled the laserrangesensor for the SLAM methods, The laserrangesensor will just pop off it's laserrangedata but it will not be used for anything.

If I want to fully test if my implementation works I really need to figure out the pixel to meters formula because that is the only thing I can do right now.

dinsdag 26 mei 2009

26-05-2009



I've been busy figuring out how to get the colorhistogram to work. I have to put the grassHistogram.hist file in
D:\...\Usar\UsarCommander\bin\Debug\

The grassHistogram.hist uses a binsize of 20, i've found that number in "D:\Doas Gideon\Usar gideon working version" in the file SkinDetector.vb

The pictures above are some results i've gotten with the grassHistogram.hist. They are quite bad though.

The red dots are free space detected by the histogram and the white dots on the 2nd picture is what the rangefinder detects as the boundaries of an object, as i said it works really bad.

I am going to normalize the image in order to get the colorhistogram to work better. I am also going to send Gideon an email about what his newest grasshistogram is, hopefully he has a more updated version of the histogram because the results are quite bad now. I am going to try and implement the the normalisation of RGB in visual basic tonight.

woensdag 20 mei 2009

20-05-2009

I've tried to implement a piece of the program that is supposed to make Laserrangedata of the omnicam rangefinder distances. It isn't done yet.
I've still got three things to do:

1) Get the colorHistogram to work
2) Figure out the pixel to meters formula
3) Convert the omnicam ranges to laserrangedata and notify the lasersensor

dinsdag 19 mei 2009

19-05-2009


Here is the result of the fixed scanlines, all the blue lines are the scanlines of the rangefinder. The program will detect for objects along these scanlines.

These are the scanranges of the omnicam this is to avoid considering the black parts of the image(the corners and the center):
362-365 min pixel radius seems good with a 320 pixel center.
547 max pixel radius so 544 is good enough with a 320 pixel center.

These are some values for the pixel-meter formula I have no idea what to do with these right now:
Formula: r^2 / 0.2333 - z^2 / 1.1357 = -1
corresponds to
k = 11.546, c = 2.321
z-values have to be corrected by 1.161

maandag 18 mei 2009

18-05-2009

I've tested my code at the UvA. It at least ran, and my omnicam rangefinder kept getting new images so I think that i've implemented it at the right spot. There is still a bug in drawing the scanlines, it draws them at the wrong directions which is weird because I really think I used the right formula's for this. The lines are coming from the center of the image which is a good thing. I'm already using a histogram but I don't think it works yet because it doesn't detect anything at the scanlines. I'm gonna look at that when I have fixed the scanlines. I've also emailed Arnoud about question 3 and 4 from 17-05-2009.

zondag 17 mei 2009

17-05-2009

I've finally got the time to work more on this project(no more classes). I've tried to implement the omnicam code into the system and I can only test this at the UvA which I will be heading to tomorrow, it is not fully done yet because I need to find out some constant variables of the omnicamP2DX. This is a list what I need to do for now.

1) Find the grassmodelhistogram for testing

2) Find out the radius of the omnicam and the minradius because the center is black

3) Find out what the mirrorheight is and the alpha of the omnicamP2DX according to Scaramuzza's formula for distance calculating

4) What to set as distance if no object has been found on the scanline

dinsdag 12 mei 2009

12-05-2009

Arnoud has helped me with understanding how the code works. He has also showed me the place where I can put in my code. I have also been given an older revision(rev1251 merged with Dialogs from rev1323) of the code where I can easily pop omnicam images from the sensor.

Arnoud has also shown me how to mask the omnicamrangefinder data into LaserRangeData.vb which is very helpful. "D:\Doas\Gideon\Usar" tells me how Gideon used the color histogram for free spacedetection.

The codeline: "observers.notifysensorupdate in agent.vb/camerasensor.vb" will update all sensors with a new omnicam image. The skindetector will now pop images but I can throw the skindetector out and put in the omnicam rangefinder so that my program will get the images.

maandag 4 mei 2009

04-05-2009

After sending Arnoud an email about scanning an omnicam image i've decided to use polar scanning instead of unwrapping an image as a rectangular image. Polar scanning is much faster and it is much easier once you calculated the math.

I've already written some code for the omnicam rangefinder but the problem is to implement it in the right files. I am really going to need Arnouds help on this one because I don't have the foggiest idea where to put it. All my attempts are in doing this are failing.