360 degree image scan???

I have a question. I'm trying to figure out the best way to do a 360 degree true color image scan around my robot. I want to scan 360 degrees, then do another 360 degree scan, then analyze the differences between both scans (or select vertical slices) continuously in real-time. Is it possible to use a scanner CCD for this mounted on a rotating platform? I don't know much about the optics needed for that type of CCD sensor. I need about 20-30 degrees above the horizon in the scan. I know I could patch a bunch of single frames together, but that is messy, slow, CPU intensive, and not real-time. There must be a way to do this, any ideas?
-- Shawn
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hi, Shawn.
One sure way to do this is to aim your camera straight up and put a 45 degree mirror in its path, aimed at the horizon. Then add a Dove prism to correct the image rotation. Now, by rotating the mirror and prism, your image will scan around the perimeter of your robot all 360 degrees, but in the process the image will remain upright at all times. If you use a stepper or other position control motor system (or some sort of optical wheel or other device) you can keep track of the image angle and that will tell your robot what direction the image is from. The only complication is that the Dove prism must be rotated at 1/2 the rate of the mirror. This is because the prism will rotate the image at twice the rate of the prism's rotation. A simple 2 to 1 gear ratio should be able to do this.
Cheers!
Chip Shults
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Chip,
Cool, that's a great idea. However, that means putting multiple large frames together to make a 360 degree scan. I would like to compare very small verticle slices (only a few pixels wide) in real-time as they are scanned. Think about it in terms of a scanner doing an endless back and forth scan, only in this case rotating around a verticle axis. Any ideas? Your idea could still work out, I'd need to check out what the frame capture delays would be.
-- Shawn

control
the
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Wed, 28 Jan 2004 23:22:25 -0500, "Shawn Brown"

Your best bet is to do google searches on the DIY astronomy websites. Below is a pix made using a hand scanner adapted to a telescope. They also have software that might be of interest.
http://66.51.112.117/k3pgp/Construction/Astropix/moon-4b.jpg
http://www.qcuiag.co.uk /
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I once saw on beyond 2000"if anyone remebers that show" where a camera was mountedfacing straight up and a bell shaped mirror was placed in the camera opening converting it to a 3d recorder, since the bell faced everywhere at once the image was reflected into the camera. Software was later added to straighten out the image and make a virtual tour of the picture. It was planned for walkthroughs of museums and such. you could adapt that idea to have a rotating shield to only allow in a slit of info at a time.
Just thought I would throw that out there
shb*NO*SPAM*@comporium.net (Si Ballenger) wrote in

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I remember that show, they always teased you and left you wanting more info. I think this approach may be slightly outside of my current capabilities, but I do like the idea.
-- Shawn

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hi,

You can use only 1-3 Lines and use the Camera like a CCD-Line. When you use some table with calculated Start and Endpoints you can even drop the prism.
Another Idea is: Point Camera upwards and mount some metalic Ball (Christmas-Ball?) above. Then you have 360 in one Frame. A realworld vertikal line ist then a line beginning in the Center of your Image.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Rotating a line scan CCD sounds perfectly do-able, although there are some practical considerations. You don't say what resolution you are looking for - but many CCDs made for scanners are very long, which means lots of pixels to process, plus somewhat larger optics than you might want. Remember also that sensitivity may be an issue - the CCD pixels are small, and the dwell time may also be small if things rotate briskly - scanners use bright lights for a good reason. It all depends again on resolution and what you mean by 'real-time'.
If all you want is difference, then perhaps multiple (fixed) simple cameras (or a single fisheye) might do as well - do you need to stitch together into a 'seamless' panorama ?
Dave
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
The higher the resolution the better. This allows for better detail of fine objects. Memory is not an issue as I'm more concerned with analyzing a vertical slice against the last vertical slice in the same direction vs. the entire 360 degree scanned image. The optics size is not an issue, this is a very large bot. One question is, what would the scanner CCD lens have to look like for for this application. I think they are currently fixed focal length, an inch or less. To scan an object in the distance, I guess there would have to be some type of enclosure with slit in it at the fixed focal length, which allowed light from the outside world to pass through. There would be limited light using that approach though. Hmmm...Didn't Viking use this type of image scanner? The scanner assembly would be rotated using a stepper motor (highly geared down to increase resolution).
-- Shawn
<DIV> <DIV><FONT face=Arial size=2>Rotating a line scan CCD sounds perfectly do-able, although there are some practical considerations. You don't say what resolution you are looking for - but many CCDs made for scanners are very long, which means lots of pixels to process, plus somewhat larger optics than you might want. Remember also that sensitivity may be an issue - the CCD pixels are small, and the dwell time may also be small if things rotate briskly - scanners use bright lights for a good reason. It all depends again on resolution and what you mean by 'real-time'.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>If all you want is difference, then perhaps multiple (fixed)&nbsp;simple cameras (or a single fisheye)&nbsp;might do as well - do you need to stitch together into a 'seamless' panorama ?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>Dave</FONT></DIV></DIV></BLOCKQUOTE></BODY></HTML>
------=
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
What you are doing is placing an image of what you want to scan onto the ccd array. If the line scan CCD length is <= 35mm or so, then just about any 35mm camera lens will work - for a longer array, you will need a larger format lens. You don't need a slit in the optical path [the ccd effectively defines its own stop], but it might help with reducing internal reflections etc.
Just as with a camera lens, spending the money to buy a lower f number will get more light onto the CCD.
If you are looking for a resolution significantly better than that of film, then you will have to pay for better lenses, and generally the better the resolution you are seeking, the more you will have to pay attention to issues like vignetting, field curvature and so on.
Dave
<DIV> <DIV><FONT face=Arial size=2>Rotating a line scan CCD sounds perfectly do-able, although there are some practical considerations. You don't say what resolution you are looking for - but many CCDs made for scanners are very long, which means lots of pixels to process, plus somewhat larger optics than you might want. Remember also that sensitivity may be an issue - the CCD pixels are small, and the dwell time may also be small if things rotate briskly - scanners use bright lights for a good reason. It all depends again on resolution and what you mean by 'real-time'.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>If all you want is difference, then perhaps multiple (fixed)&nbsp;simple cameras (or a single fisheye)&nbsp;might do as well - do you need to stitch together into a 'seamless' panorama ?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>Dave</FONT></DIV></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
------=
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
The 35mm lens would fine if the CCD sensor was small, however, these scanner CCDs are much longer than that. I'd like to take advantage of the entire length of the sensor (max pixels). -- Shawn
<DIV> <DIV><FONT face=Arial size=2>Rotating a line scan CCD sounds perfectly do-able, although there are some practical considerations. You don't say what resolution you are looking for - but many CCDs made for scanners are very long, which means lots of pixels to process, plus somewhat larger optics than you might want. Remember also that sensitivity may be an issue - the CCD pixels are small, and the dwell time may also be small if things rotate briskly - scanners use bright lights for a good reason. It all depends again on resolution and what you mean by 'real-time'.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>If all you want is difference, then perhaps multiple (fixed)&nbsp;simple cameras (or a single fisheye)&nbsp;might do as well - do you need to stitch together into a 'seamless' panorama ?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>Dave</FONT></DIV></DIV></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
------=
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Well, if you take something like the Sony ILX555K, which is 10680 pixels long (x3 - intended to read A4 documents at 1200dpi), the actual active length is 37mm ...
I doubt anyone makes commercial silicon the full width of a scanner, so they all have relay lenses - but these are highly optimised.
Finding a lens with that kind of resolution is indeed going to be a real challenge - high end large format camera lens perhaps ?
Dave
<DIV> <DIV><FONT face=Arial size=2>Rotating a line scan CCD sounds perfectly do-able, although there are some practical considerations. You don't say what resolution you are looking for - but many CCDs made for scanners are very long, which means lots of pixels to process, plus somewhat larger optics than you might want. Remember also that sensitivity may be an issue - the CCD pixels are small, and the dwell time may also be small if things rotate briskly - scanners use bright lights for a good reason. It all depends again on resolution and what you mean by 'real-time'.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>If all you want is difference, then perhaps multiple (fixed)&nbsp;simple cameras (or a single fisheye)&nbsp;might do as well - do you need to stitch together into a 'seamless' panorama ?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial size=2>Dave</FONT></DIV></DIV></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
------=
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Another thing to remember - the readout clock speed for this device is 5 MHz - ie 2 seconds per line. So, reading a 10k by 10k square will take 20k seconds, ie 5.5 hours ...
Dave
<DIV><FONT face=Arial size=2>The 35mm lens would fine if the CCD sensor was small, however, these scanner CCDs are much longer than that.&nbsp; I'd like to take advantage of the entire length of the sensor (max pixels).</FONT><BR>-- <BR>Shawn</DIV> <BLOCKQUOTE dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">&nbsp;</BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
------=
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Lets have another go at that - 10k pixels at 5 MHz is 2 ms. So a 10k by 10k image would take 20 seconds ! (is that 'real time' ?)
The camera aboard Mars Express is a line scan device.
Dave
<DIV><FONT face=Arial size=2>The 35mm lens would fine if the CCD sensor was small, however, these scanner CCDs are much longer than that.&nbsp; I'd like to take advantage of the entire length of the sensor (max pixels).</FONT><BR>-- <BR>Shawn</DIV> <BLOCKQUOTE dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">&nbsp;</BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
------=
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hmmm...that seems rather long. My HP 1200C scanner can scan an A-size sheet of paper in much less time than that. I would think there are much faster CCDs. You can buy specialized digital video cams with frame rates up to 120fps (lower res of course). My real need is to be able to reliably identify a human size target (1 meter) at 3-5 kilometers. I'm not sure what pixel density that works out to yet.
-- Shawn
<DIV><FONT face=Arial size=2>The 35mm lens would fine if the CCD sensor was small, however, these scanner CCDs are much longer than that.&nbsp; I'd like to take advantage of the entire length of the sensor (max pixels).</FONT><BR>-- <BR>Shawn</DIV> <BLOCKQUOTE dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">&nbsp;</BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
------=
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hmmm...that seems rather long. My HP 1200C scanner can scan an A-size sheet of paper in much less time than that. I would think there are much faster CCDs. You can buy specialized digital video cams with frame rates up to 120fps (lower res of course). My real need is to be able to reliably identify a human size target (1 meter) at 3-5 kilometers. I'm not sure what pixel density that works out to yet.
Okay Shawn, let's look at the math. Angular size decreases linearly with distance, or 1/d. Let's consider a one meter radius circle and a 90 degree field of vision. The circumference of a one meter radius circle would be about 6.283 meters. One fourth of that (that 90 degree field) would be about 1.57 meters of arc and a 1,024 pixel wide frame would mean that each pixel was effectively a 1.533 millimeter wide dot on your 1 meter radius circle. Of course, we tend to view this as a flat field with distance, rather than a curved section of a circular arc. Nevertheless, we can still use this method to get an estimate. If we look at it from the perspective of 90 degrees being 1,024 pixels wide, then the entire circle would be 4,096 pixels in circumference. And, each pixel would be 90/1,024 or 0.0879 degrees wide. Now, let's look at a human target one meter wide at a distance of 5 kilometers. How wide would it appear to us if we had a 90 degree field of view? Since our 1 meter distance yields a pixel width (for 1K of pixels) of 1.533 millimeters or 0.001533 of our field, and a one meter wide target at 5,000 meters is 0.00005 of our 90 degree field, we will have a target that is 0.0045 degrees in width, or 0.0512 of a pixel in width. In other words, nearly 20 people standing side by side would occupy a single pixel at a distance of 5 kilometers. Time for a zoom lens.
Cheers!
Chip Shults
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I avoided this one since I really don't know what it takes to recognize a human...

sheet
what
a
circumference
of
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Well, consider that without some minimum amount of pixels much larger than one, it is very unlikely to happen! But also, it helps to know that there are very few upright hot things walking about, at least here in the USA. No kangaroos, few enough bears...
Cheers!
Chip Shults
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.