Thanks,
Jim, K6JMG
Hi,
Why not just mount the range finder sensor on a servo … then panning left ‘n right you can scan the environment and build a map in memory just like a SICK …
=========================================================================================
C U L8r, °|° Walt Perko °|° "Kids ... teach
them the good stuff, and they still learn the bad stuff."
OPEC of the West California
"The World Needs a New Economic
Model"
--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.More is better… unless they start interfering with each other…
Rule of thumb: after you ping a transmitter wait for its return (or timeout)
before you ping the next one UNLESS you _KNOW_ that they don't interfere with
each other (such a opposing transducers (left/right, front/back, etc.)).
The HERO 2000 (H2K) uses two sensors, one front (bottom) mounted and a 2nd on top
that reflects off a disk spun via a stepper motor. They don't seem to interfere.
The top one steps in 15 degree increments (so 24 steps all the way around); it can
step smaller but that would mean that it would take longer to do each full rotation
(since it has to wait for the return before advancing to the next position).
You could mount two Parallax Ping(ers) on top of a server back-to-back to sense in
opposite directions at the same time (they shouldn't interfere) or use two pincers
mounted on opposite sides of your bot.
…so many toys… so little time…
I have a iRobot/Roomba question for the group but I'll send it in an new email…
--
Enjoy,
George Warner,
Schizophrenic Optimization Scientist
Apple Developer Technical Support (DTS)
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number of electrons were terribly inconvenienced.
//
From: hbrob...@googlegroups.com [mailto:hbrob...@googlegroups.com] On Behalf Of Jim McGuffin
Sent: Friday, December 18, 2009 3:01 PM
To: hbrob...@googlegroups.com
Subject: RE: [HBRobotics] Ultrasonic sensor placement
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number of electrons were terribly inconvenienced.
//
From: hbrob...@googlegroups.com [mailto:hbrob...@googlegroups.com] On Behalf Of Walt Perko
Sent: Friday, December 18, 2009 3:04 PM
I guess whether you have one or two sensors, height-wise, would depend on
how tall your bot is. AT this point I have this little tail-dragger that I
am experimenting with to get my robotic footing so I think one will do the
trick.
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> -----Original Message-----
> From: hbrob...@googlegroups.com
> [mailto:hbrob...@googlegroups.com] On Behalf Of George Warner
> Sent: Friday, December 18, 2009 4:46 PM
> To: hbrob...@googlegroups.com
> Subject: Re: [HBRobotics] Ultrasonic sensor placement
>
> On Dec 18, 2009, at 1:51 PM, jgeidl wrote:
> > I am starting tp play with Ultrasonic sensors; Ping from Parallax
> > specifically. Just for forward sensing, do you guys use on
> centrally
> > located sensosr on your bot or one on center and one on each corner
> > pointing out about 45deg or what?
>
> More is better. unless they start interfering with each other.
>
> Rule of thumb: after you ping a transmitter wait for its
> return (or timeout) before you ping the next one UNLESS you
> _KNOW_ that they don't interfere with each other (such a
> opposing transducers (left/right, front/back, etc.)).
>
> The HERO 2000 (H2K) uses two sensors, one front (bottom)
> mounted and a 2nd on top that reflects off a disk spun via a
> stepper motor. They don't seem to interfere.
> The top one steps in 15 degree increments (so 24 steps all
> the way around); it can step smaller but that would mean that
> it would take longer to do each full rotation (since it has
> to wait for the return before advancing to the next position).
>
> You could mount two Parallax Ping(ers) on top of a server
> back-to-back to sense in opposite directions at the same time
> (they shouldn't interfere) or use two pincers mounted on
> opposite sides of your bot.
>
> .so many toys. so little time.
>
> I have a iRobot/Roomba question for the group but I'll send
> it in an new email.
Guess number two: scanning speed is limited by the reflection time of
the sonar, meaning the time for the echo return from the most distant
object plus waiting time for all multi-path reflection noise to die
down. Since you are doing multiple pings per scan pass, the total
waiting time will probably be long. My guess is that their video shows
pretty much the state of the art in navigating with this type of scanned
sonar.
A note on SICK and SICK sensors.
SICK AG ( www.sick.com ) is a German company that makes lidar sensors
for industrial use. They cost about $6,000. The SICK lidar sensors have
become the widely used standard for robotics. both industrial and
research. In the factory, they are often used for safety, shutting down
the robot if anything moves near a working robot. Pretty much every
vehicle on the DARPA challenges had multiple SICK lidar units on it.
The SICK unit is a scanning lidar, like the Gecko Systems scanning
sonar. The SICK unit uses a rotating mirror to scan a line.
Lidar is better - and more expensive - than sonar because:
1) The round-trip delay for lidar at 10' distance is about 20
nanoseconds at a propagation velocity of 1 foot/ns.
And you do not have to wait for the echo to die down.
The round trip for sonar at 10' is about 20 milliseconds at 1100
feet/sec => 1 foot/msec, one million times slower than lidar.
And you should wait another 20+ msec for the echoes to die down.
Result: Sonar will scan much slower than lidar.
2) Beam width on a lidar unit is perhaps 0.020". Think laser pointer.
The beam width in angle terms at 10' is arcsine (0.020/120) => 0.01
degrees.
Beam width on a typical sonar unit is ~30 degrees.
Result: lidar can see much smaller objects and details than sonar, by a
factor of ~3,000 in this example.
3) You can get sonar units for $20 from many places. SICK lidar units
are $6,000.
Result: hobbyists tend to buy cheap sonar. Hard to sell anything over
$200 in the hobby market.
Making your own lidar is possible, but a non-trivial project.
You are measuring pieces of a nanosecond, where distance is measured at
2 nanoseconds per foot.
You need some knowledge of:
a) lasers and how to drive them,
b) lenses,c) high gain photo diode sensors,
c) how to design high gain, wide bandwidth, wide dynamic range video
amplifiers
d) digital+analog methods to measure round trip delay to ~1 ns or better.
Very do-able. I have seen it done by Ingolf Sander at HBRC.
But you need somebody with the combination of electro-optical and high
speed analog circuit design on your team.
Dave Wyland
James M.(Jim) Geidl wrote:
> Walt,
>
> I have thought about the rotating sensor idea and have wondered if
> that was a way to go. It would certainly be cheaper in money and
> ports than having 3 front-facing sensors.
>
> I am absolutely going to do SICK there is no doubt this is the only
> way to do this I can't imagine doing it any other way. What's SICK? :-)
>
>
> Jim, K6JMG
> www.spinochio.com
>
> /No trees were harmed in the sending of this message; however, a large
> number of electrons were terribly inconvenienced. /
>
>
> //
>
>
>
> ------------------------------------------------------------------------
> *From:* hbrob...@googlegroups.com
> [mailto:hbrob...@googlegroups.com] *On Behalf Of *Walt Perko
> *Sent:* Friday, December 18, 2009 3:04 PM
> *To:* hbrob...@googlegroups.com
> *Subject:* RE: [HBRobotics] Ultrasonic sensor placement
>
> Hi,
>
>
>
> Why not just mount the range finder sensor on a servo � then
> panning left �n right you can scan the environment and build a map
> in memory just like a SICK �
>
>
>
>
>
>
>
> =========================================================================================
> C U L8r, �|� Walt Perko �|� "Kids ... teach them the
> good stuff, and they still learn the bad stuff."
> OPEC of the West <http://www.opecofthewest.com/> California
>
> "The World Needs a New Economic Model"
>
>
>
> -----Original Message-----
> *From:* hbrob...@googlegroups.com
> [mailto:hbrob...@googlegroups.com]*On Behalf Of *Jim McGuffin
> *Sent:* Friday, December 18, 2009 3:01 PM
> *To:* hbrob...@googlegroups.com
> *Subject:* RE: [HBRobotics] Ultrasonic sensor placement
>
>
>
> If you only have one, all you know is that there is something out
> there. You have no idea what to do about it.
>
> My Robomagellan robot, A3, has 3 facing forward - center, one at
> +30 degrees, and one at -30 degrees. When something is in the way,
> I choose left or right depending on which one has the most open
> space in front of it.
>
> At the moment, it has another one in the center but tilted up
> (works better on rough terrain), two more facing the sides, and
> one in the rear.
>
> An earlier incarnation (A2) had one pinger sitting on top of a
> hobby servo that I could use to look to the side. This is not a
> bad way to go. Servos are cheaper than pingers.
>
> Jim
>
>
> > Date: Fri, 18 Dec 2009 13:51:34 -0800
> > Subject: [HBRobotics] Ultrasonic sensor placement
> > From: but...@gmail.com
> > To: hbrob...@googlegroups.com
> >
> > I am starting tp play with Ultrasonic sensors; Ping from Parallax
> > specifically. Just for forward sensing, do you guys use on centrally
> > located sensosr on your bot or one on center and one on each corner
> > pointing out about 45deg or what?
> >
> > Thanks,
> >
> > Jim, K6JMG
>
From: David Wyland
> > -------- *From:* hbrob...@googlegroups.com
> > [mailto:hbrob...@googlegroups.com] *On Behalf Of *Walt Perko
> > *Sent:* Friday, December 18, 2009 3:04 PM *To:*
> > hbrob...@googlegroups.com *Subject:* RE: [HBRobotics]
> > Ultrasonic sensor placement
> >
> > Hi,
> >
> >
> >
> > Why not just mount the range finder sensor on a servo ... then
> > panning left `n right you can scan the environment and build a
> > map in memory just like a SICK ...
> >
> >
> >
> >
> >
> >
> >
> > ================================================================
> > ========================= C U L8r, °|° Walt Perko °|°
> > "Kids ... teach them the good stuff, and they still learn the
> > bad stuff." OPEC of the West <http://www.opecofthewest.com/>
> > California
> >
> > "The World Needs a New Economic Model"
> >
> >
> >
> > -----Original Message-----
> > *From:* hbrob...@googlegroups.com
> > [mailto:hbrob...@googlegroups.com]*On Behalf Of *Jim McGuffin
> > *Sent:* Friday, December 18, 2009 3:01 PM *To:*
> > hbrob...@googlegroups.com *Subject:* RE: [HBRobotics]
> > Ultrasonic sensor placement
> >
> >
> >
> > If you only have one, all you know is that there is something
> > out there. You have no idea what to do about it.
> >
> > My Robomagellan robot, A3, has 3 facing forward - center, one at
> > +30 degrees, and one at -30 degrees. When something is in the
> > +way,
SparkFun sells a laser that you can turn off & on with TTL.
http://www.sparkfun.com/commerce/product_info.php?products_id=8654
From: David Wyland
> > -------- *From:* hbrob...@googlegroups.com
> > [mailto:hbrob...@googlegroups.com] *On Behalf Of *Walt Perko
> > *Sent:* Friday, December 18, 2009 3:04 PM *To:*
> > hbrob...@googlegroups.com *Subject:* RE: [HBRobotics]
> > Ultrasonic sensor placement
> >
> > Hi,
> >
> >
> >
> > Why not just mount the range finder sensor on a servo ... then
> > panning left `n right you can scan the environment and build a
> > map in memory just like a SICK ...
> >
> >
> >
> >
> >
> >
> >
> > ================================================================
> > ========================= C U L8r, °|° Walt Perko °|°
> > "Kids ... teach them the good stuff, and they still learn the
> > bad stuff." OPEC of the West <http://www.opecofthewest.com/>
> > California
> >
> > "The World Needs a New Economic Model"
> >
> >
> >
> > -----Original Message-----
> > *From:* hbrob...@googlegroups.com
> > [mailto:hbrob...@googlegroups.com]*On Behalf Of *Jim McGuffin
> > *Sent:* Friday, December 18, 2009 3:01 PM *To:*
> > hbrob...@googlegroups.com *Subject:* RE: [HBRobotics]
> > Ultrasonic sensor placement
> >
> >
> >
> > If you only have one, all you know is that there is something
> > out there. You have no idea what to do about it.
> >
> > My Robomagellan robot, A3, has 3 facing forward - center, one at
> > +30 degrees, and one at -30 degrees. When something is in the
> > +way,
Not much chance the I am going to be doing anything with SICK in the near
future at $6000 a pop. I am in the cheap robot camp.
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> [mailto:hbrob...@googlegroups.com] On Behalf Of David Wyland
> Sent: Friday, December 18, 2009 6:52 PM
> To: hbrob...@googlegroups.com
> Subject: Re: [HBRobotics] Ultrasonic sensor placement
>
Am I on the right track?
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> [mailto:hbrob...@googlegroups.com] On Behalf Of don clay
> Sent: Friday, December 18, 2009 7:32 PM
> To: hbrob...@googlegroups.com
> Subject: Re: [HBRobotics] Ultrasonic sensor placement
>
How does this thing work? I see pulsing it to send a signal but what picks
it up on the return? I am assuming the laser is included on the board, is
that correct?
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> [mailto:hbrob...@googlegroups.com] On Behalf Of don clay
> Sent: Friday, December 18, 2009 7:37 PM
> To: hbrob...@googlegroups.com
> Subject: Re: [HBRobotics] Ultrasonic sensor placement
>
But you could just go from 30 degrees to 0 degrees to -30 degrees. That would
be a lot faster than what I did.
So for 2 feet, the round trip is around 3.6 ms with sonar. Then you factor in the
seek time, it's about 95 ms to go 30 degrees for a hitec hs-322HD servo, so say
100ms perl ocation or 300ms/sweep.
So having 3 servos saves most of that 300ms.
From: Jim Geidl
> > > > +the way,
> > > > I choose left or right depending on which one has the
> > most open
> > > > space in front of it.
> > > >
> > > > At the moment, it has another one in the center but tilted
> > > > up (works better on rough terrain), two more facing the
> > sides, and
> > > > one in the rear.
> > > >
> > > > An earlier incarnation (A2) had one pinger sitting on top of
> > > > a hobby servo that I could use to look to the side.
> > This is not a
> > > > bad way to go. Servos are cheaper than pingers.
> > > >
> > > > Jim
> > > >
> > > >
> > > > > Date: Fri, 18 Dec 2009 13:51:34 -0800
> > > > > Subject: [HBRobotics] Ultrasonic sensor placement
> > > > > From: but...@gmail.com
> > > > > To: hbrob...@googlegroups.com
> > > > >
> > > > > I am starting tp play with Ultrasonic sensors; Ping from
> > > > > Parallax specifically. Just for forward sensing, do you
> > > > > guys use on centrally located sensosr on your bot or one
> > on center
> > > > > and one on each corner pointing out about 45deg or what?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Jim, K6JMG
>
You only have the "talking" (transmitting) part, not the "listening"
(receiving) part. The laser sends out the pulse, and you need a separate
photo diode to receive the reflection. As we know from humans, listening
is much tougher than talking.
The receiving part needs to capture the reflected light pulse from what
the laser hits. This is a little tricky, as follows:
1) Unlike radar with megawatt pulses, eye-safe lasers do not generate
much optical power. So you start out with a small transmitted signal.
2) The return signal is weak. With radar or sonar, the return signal
decreases as the fourth power of the distance. The power falls off as
the square of the distance from the transmitter laser, and the reflected
light falls off as the square of the distance from the thing doing the
reflecting. So the signal normally decreases really rapidly with distance.
The laser helps here. It generates a small diameter beam that does not
spread out (much) with distance. So the light falls off as the square of
the distance, not the fourth power. Be thankful for small victories.
Still, the challenge is to detect the rising edge of the return pulse to
a resolution of ~1 ns. To do this, you need: a low noise, high optical
gain photo diode and a low noise, high gain video amplifier. You usually
wind up with a lens in front of the photo diode to gather as much
returning light as possible.
3) Receiver noise is always a headache and limiting factor. One way
around this is to average over a lot of return pulses. Another, similar
way is to have the laser put out a square wave and have the receiver
correlate the received square wave against a delayed version of the
transmitted one. This averages noise and improves resolution.
Hope this helps,
Dave
> Couldn't you also use a camera & then use Pythagorian's trusty ole theorem?
That is taking the (perfectly valid) approach of turning it into an image processing problem. For instance, use a rotating mirror to turn the laser beam into a line, and project the line onto the terrain. Then use a camera to see where the line falls, and use openCV to pull out the line via line recognition. The height of the line in the frame tells you distance to the obstacle(s), by Pythagorus, as you point out. If you have the processing power for openCV, then all that is left is the programming :)
-dave
So I'm imagining a circuit that is similar to a PLL frequency synthesizer.
1. XMIT a square wave
2. On the receive side, phase-lock a local oscillator to the received square wave.
There will be a phase delay between the transmitter's square wave and the receiver's phase-locked LO square wave.
3. Run the transmitter and receiver LO into a phase detector (mixer or XOR gate).
4. Low-pass filter the phase detector output to create a DC signal. The amplitude of the DC signal is the distance.
-dave N6NZ
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> [mailto:hbrob...@googlegroups.com] On Behalf Of don clay
> Sent: Friday, December 18, 2009 8:43 PM
> To: hbrob...@googlegroups.com
> Subject: RE: [HBRobotics] Ultrasonic sensor placement
<snip>
How do you navigate a bamboo forest looking for horizontal lines from a
scanning laser?
============================================================================
=============
C U L8r, �|� Walt Perko �|� "Kids ... teach them the good stuff,
and they still learn the bad stuff."
OPEC of the West California
"The World Needs a New Economic Model"
-----Original Message-----
From: hbrob...@googlegroups.com [mailto:hbrob...@googlegroups.com]On
Behalf Of Dave Curtis
Sent: Saturday, December 19, 2009 10:06 AM
To: hbrob...@googlegroups.com
Subject: Re: [HBRobotics] Ultrasonic sensor placement
Thanks, that answers the receiving question. This looks like something I am
going to have to wait awhile to address as I am just getting past the idea
of sensing "feelers" or whisker and into ultrasonic. Lasers/lenses/video
amplifiers is a little daunting right now.
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> [mailto:hbrob...@googlegroups.com] On Behalf Of David Wyland
> Sent: Friday, December 18, 2009 11:16 PM
> To: hbrob...@googlegroups.com
> Subject: Re: [HBRobotics] Ultrasonic sensor placement
>
<snip>
> Today's Topic Summary
> Group: http://groups.google.com/group/hbrobotics/topics
>
> • Ultrasonic sensor placement [15 Updates]
> • 2009 ComBots Cup @ San Mateo this Weekend [1 Update]
> • iRobot Roomba [1 Update]
> Topic: Ultrasonic sensor placement
> jgeidl <but...@gmail.com> Dec 18 01:51PM -0800 ^
>
> I am starting tp play with Ultrasonic sensors; Ping from Parallax
> specifically. Just for forward sensing, do you guys use on centrally
> located sensosr on your bot or one on center and one on each corner
> pointing out about 45deg or what?
>
Catching up a bit late in the thread here(I get this list in digest
mode).
For Rivet,(the iRobot Create many of you have seen crawling around the
floor at HBRC meetings)
I use 3 sonars, one pointed forward and two at approx. 30 degrees
from forward(so 330, 0 and 30 degrees if forward is 0).
The single forward-facing one is okay for detecting and avoiding
things right in front of the 'bot, but you miss things
like the chair/table leg off to the side of the 'bot or doorways, etc.
If you want your 'bot to be able to do things like navigate hallways
in a fairly straight line, 3 is pretty much required IME.
On the subject of sweeping with a single one attached to a servo, I
recently converted the SaucerBot from using a single, fixed, forward-
facing
sonar to one using a servo to sweep the sensor around. With the fixed
sensor it's had no problems detecting an object on a table, but seems to
easily lose track of them as it rolls along and moves towards it. I'm
thinking that fixed sensors are okay for obstacle avoidance, but make
things more
complicated when you're trying to track an object.
So I guess I would say that the answer to the question of sweeping vs.
fixed sensors might have something to do with your application.
'dillo
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> -----Original Message-----
> From: hbrob...@googlegroups.com
> [mailto:hbrob...@googlegroups.com] On Behalf Of Walt Perko
> Sent: Saturday, December 19, 2009 10:23 AM
> To: hbrob...@googlegroups.com
> Subject: RE: [HBRobotics] Ultrasonic sensor placement
>
I have a hunch that getting the timing right on a sweeping sensor is a
little bit of a challenge. I can see having to allow for send and receive
timing before the next transmit as well as picking up stray re-reflected
signals not to mention the fact that you transmit and turn the sensor so you
have to be careful to not move the sensor so fast that is misses the return
signal.
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number
of electrons were terribly inconvenienced.
//
> [mailto:hbrob...@googlegroups.com] On Behalf Of Steve "
> 'dillo" Okay (Roadknight Mobility Labs)
> Sent: Saturday, December 19, 2009 10:35 AM
> To: hbrob...@googlegroups.com
> Subject: [HBRobotics] Re: Ultrasonic sensor placement
>
>
> On Dec 19, 2009, at 05:27 , hbrobotic...@googlegroups.com wrote:
>
> > Today's Topic Summary
> > Group: http://groups.google.com/group/hbrobotics/topics
> >
> > . Ultrasonic sensor placement [15 Updates]
> > . 2009 ComBots Cup @ San Mateo this Weekend [1 Update]
> > . iRobot Roomba [1 Update]
In theory.
Actual coding left to the reader :)
-dave
Dave
I find a better solution here is a camera since it can look at a lot more area with
better precision than a single photo diode (with or without lens). If you can turn the
laser on/off in sync with the camera's frame rate then diffing sequential frames can
rapidly and accurately identify where the laser light is hitting any obstacle in its
path. Then all you need is a little math to triangulate the distance.
Local knowledge? I'd go with a diagonal line… ;-)
A vertical line would probably be worse; unless you were lucky it would probably
hit a tree behind a tree blocking your camera's view.
Best of both world: perhaps a triangle?
Something else to consider: What would be the effect of a single transmitter (with a ±45° beam) in the middle of an array of receivers? Would there be enough information returned across the array to catch (sonar) shadows and echo's? and make useful mapping data out of it?
Implementation is left as an exercise to the reader… ;-)
Jim, K6JMG
www.spinochio.com
No trees were harmed in the sending of this message; however, a large number of electrons were terribly inconvenienced.
//
From: hbrob...@googlegroups.com [mailto:hbrob...@googlegroups.com] On Behalf Of Ralph Gnauck
Sent: Saturday, December 19, 2009 11:32 AM
To: hbrob...@googlegroups.com
Subject: Re: [HBRobotics] Re: Ultrasonic sensor placement
Maybe you are referring to structured light, as in having a laser
project a line and having the camera look at the line from an angle
above the line.
The waviness (height) of the line as seen by the camera gives you the
distance to the point where the light hits.
This works fine, but you are limited to a 60 Hz update rate.
Dave
Hokuyo has created a number of (relatively) low-priced SICK-like laser
scanners for robotics applications.
This is one of the best deals I know of at $1175:
http://www.acroname.com/robotics/parts/R325-URG-04LX-UG01.html
If you can wait a few months, this article describes a consumer robot
under $400 containing a laser distance scanner:
http://www.botjunkie.com/2009/12/17/neato-robotics-xv-11-robot-vacuum-uses-laser-mapping-to-navigate-will-be-available-in-us/
If $400 is too steep, there are probably other valuable parts that
could be harvested such as motors, gear trains, wheel mounts,
encoders, batteries, etc...
Nathan
I'm not talking about Lidar… I don't have $6K laying around…
> Maybe you are referring to structured light, as in having a laser
> project a line and having the camera look at the line from an angle
> above the line.
It doesn't have to be a line; I've played "follow the dot", tracking it as
it's moved around a scene jumping between different depths of field as it
hits obstacles. Not difficult with most desktop CPUs…
> The waviness (height) of the line as seen by the camera gives you the
> distance to the point where the light hits.
> This works fine, but you are limited to a 60 Hz update rate.
I don't know how fast you intend your robot to move but doing a little math…
For most robots 3 MPH is pretty fast (I once built a R/C platform with with a
12V motorcycle battery and two opposing power drill motors with 7' wheels
chucked up in each that would go 30 MPH! The neighborhood kids couldn't catch
it on their bikes… Fun! ;-)
3 MPH == 3 * 5280 feet per mile == 15840 feet per hour
divided by 60 minutes per hour and 60 seconds per minute gives 4.4 feet per second…
divide that by 60 frames per second gives… ≈.0733 feet per frame…
x12 inches per foot == .88" per frame
That should be no problem for a table top bot but if want to go 60 MPH multiply
all that by 20 for an ending answer of 1.466 feet per frame… which would probably
push the abilities of most computers… which is why the use lidar for the DARPA
challenges…
But for most of my bots (sans the drill bot…) 60Hz updates are fine… ;-)
My understanding is that the Neato uses a scanning laser-mirror-HD camera in a method very similar to the "structured light" technique David Wyland outlined in his previous email.
Neato published a paper on how it works entitled, "A Low Cost Laser
Distance Scanner". (Camp Peavy's name is on that paper!) It's based
on the same concept as David's approach with minor differences. For
example, there is no mirror involved.
I know Alex Sy started work on his own scanner. Tony also built one
using a Sharp IR sensor that was a bit slow and a little near-sighted.
I'm interested in hearing stories from anyone else who's tried it.
Last year, I tried to make my own by adding a camera and laser line
caster to my balancer Snappy. I read a structured light article
online that made it sound easy.
It turned out a lot more difficult than I expected. Getting it to
work in a variety of environments, with accuracy and consistency, was
harder than the rest of the balancing robot. In the end, it worked
when the robot was parked in a dark room, but it wasn't stable, and
definitely not eye-safe.
Some hints: Webcam optics aren't very mechanically stable on a
rattling platform. If the image shifts by a pixel or two, distant
readings vary wildly. Do the trig and you'll see what I mean. Blind
spots up close are a big problem... when you most need that laser it
disappears off camera.
Still, it's a great project that will provide many months of
entertainment. I think I'm going to try a Neato scanner on my next
hobby bot...
- Nathan
Could you provide a full reference for the paper?
-Wayne
> --
>
> You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
> To post to this group, send email to hbrob...@googlegroups.com.
> To unsubscribe from this group, send email to hbrobotics+...@googlegroups.com.
Commonly this is easily done with a cylindrical lense. Basically
shine a laser through a glass rod, you've got a line generator.
Often you need to pulse the beam on and off between scans. They
you subtract the two images, and only the generated line remains
(in theory anyway if there isn't too much motion between
frames).
Randy
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4543666
A low-cost laser distance sensor
Konolige, K. Augenbraun, J. Donaldson, N. Fiebig, C. Shah, P.
SRI Int., Menlo Park, CA;
This paper appears in: Robotics and Automation, 2008. ICRA 2008.
Publication Date: 19-23 May 2008
On page(s): 3002-3008
Nathan
> Dave Curtis said: Saturday, December 19, 2009 12:06 PM
>> instance, use a rotating mirror to turn the laser beam
>> into a line, and project the line onto the terrain.
>
> Commonly this is easily done with a cylindrical lense. Basically
> shine a laser through a glass rod, you've got a line generator.
That spreads the power out along the entire line. I've see a lot of implementations of laser lines where an 8-sided (or so) mirror is simply spun with a motor. This sweeps the laser in a line, with a full power dot at all points in the sweep.
Yes, but think about the soak of the pixels in the camera, which
has a fast horizontal sweep as well as a slow vertical sweep.
This means if the mirror is sweeping the line past the pixels
that are (or aren't) being read at the time of illumination,
they will see differing intensities, or even nothing at all.
It's a synchronization nightmare to use a doubly swept video
with a single swept illumination. Think strobe effects by
degrees. Better to have a constant illumination with lower
intensity, and no sync problems.
Randy
Yup. Good point. The two sweep frequencies will beat.
But... suppose we reverse the situation. Scan the laser with a reasonably well synchronized and speed controlled motor -- for instance a brushless CD-Rom motor. That sweeps a high intensity beam. Now put a lens in front of a photo-diode array, oriented vertically. Motor position tells you heading, the lit pixel in the diode array tells you distance (with a little math).
-dave
>
> Randy
All the measuring is done in a few nanoseconds, even with phase
correlation methods.
The high intensity gives you a better signal to noise ratio than having
the beam spread out.
Also, fast measurement of time delay tends to reject low (<1 MHz!)
frequency light noise.
Structured light is good when you can control conditions.
Keyence has a great line of industrial light sensors that can measure
millimeters.
But they are intended for factory automation, not random use.
It might be possible to do a blend of lidar and structure.
Use the lidar small-point-of-bright-light.
Then find the pinpoint of light in the camera image.
Do the triangulation to measure distance.
Except ... This approach is probably NOT eye-safe.
You will be lingering the laser beam on a spot for ~16 msec, one frame
time.
Bad if that point is someone's eyeball.
In typical lidar, the beam sweeps by quickly, even though it is bright
where it hits.
So, an eyeball would see only a passing flash.
Dave
-Chris
> Did you have a particular photodiode array in mind?
Well, I hadn't thought deeply about it, but I had something like this in mind:
http://www.taosinc.com/productdetail.aspx?product=11
http://www.taosinc.com/productdetail.aspx?product=7
Mouser carries them.
-dave
There's actually some middle ground here: A slightly convex lens will spread a laser beam enough so that it's not a single pixel any more and at the same time not so much that it's diffused and the camera can't detect any of its reflected light. And while visible light is convent for us humanoids to see while designing and debugging the mechanics of this system infrared is actually a better choice of light frequency (and most cameras can see it just as easy as visible light (note: some cameras have UV/IR filters that can be removed to enhance their sensitivity to IR light)). The only downside is that different materials (couches & rugs/carpets for example…) absorb it more than they do visible light.
All my experiments in this area use a robot mounted (wireless, HD) web camera and a servo mounted (diffused) laser pen (controlled by the robot). My desktop system receives the camera signal and "does the math" (triangulation) and then sends navigation commands back to the robot (via an RF link). The servo sweep takes about 1/2 second per sweep (≈1 second round trip) and allows the desktop system to recognize the nearest obstacle to avoid.
My original design mounted the camera on the front left corner of the bot and the laser pen / servo on the front right; this worked well enough but not as well as mounting both the camera and the laser pen on the servo at the front center of the bot. The camera is immediately above the servo and the laser pen mounts about six inches above the camera and points down at a spot about four feet in front of the robot. The triangulation works better when it's perpendicular to the sweep direction of the servo.
BTW: I refer to this system as a "Hoover" out of respect for Dr. Richard Hoover the "Father of the Lightweight Long Cane Technique" (for the blind). Hopefully it's obvious why… ;-)
Now that is an interesting idea. Essentially, you're making your
own camera.
Here's another twist on that theme. Use a curved reflector to
direct the light on the linear diode detector array. Then you
don't have to do any math. Pixels and distance could be linear.
Randy